-
[2609] 최대공약수 최소공배수CS/백준, 프로그래머스 풀이 2022. 5. 27. 01:31
상남자는 GCD라이브러리 쓰지 않는다.
뭔가 예제가 잘못되었는지 자꾸 터진다.
n, m = map(int, input().split()) i = 2 temp = 0 #0,0이랑 1,1까지만 개선해보자 if n > m: i = m while True: if n % i == 0 and m % i == 0: print(i) print(n // i * m // i * i) break else: i -= 1 elif n < m: i = n while True: if m % i == 0 and n % i == 0: print(i) print(n // i * m // i * i) break else: i -= 1 else: if n == 0 or m == 0: print(0) print(0) else: temp = m print(m) print(n*m)
첨엔 이렇게 구겨넣었는데, 하면서도 이게 맞나 싶었던 코드였다.
다른 사람의 코드를 참고해서 개선해보았다.
n, m = map(int, input().split()) def gcd(n, m): if m == 0: return n else: return gcd(m, n % m) res = gcd(n, m) print(res) print(n * m // res)
이걸 이렇게 줄일수 있는데 ㄷㄷ..
zero divide error를 위해 m이 0인 경우를 방지하였다.
gcd에 예제인 24, 18이 들어간다면
24, 18
-> 18, 6
-> 6, 0
이렇게 진행된다.
'CS > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[16236] 아기상어 (1) _ 문제 설명 & 일부 코드 설명 (0) 2022.06.13 [11866] 요세푸스 문제 0 (0) 2022.06.12 [1620] 나는야 포켓몬 마스터 이다솜 (0) 2022.06.09 [10814] 나이순 정렬 (0) 2022.05.27 [1181] 단어정렬 (0) 2022.05.27