프로그래머스 LV2 - N개의 최소공배수
내 풀이
def solution(n,a,b):
count = 0
while a != b:
if a % 2 == 0:
a = a // 2
else:
a = a // 2 + 1
if b % 2 == 0:
b = b // 2
else:
b = b // 2 + 1
count += 1
return count
다른 풀이
def solution(n, a, b):
answer = 0
while a != b:
answer += 1
a, b = (a + 1) // 2, (b + 1) // 2
# +1을 한 뒤 2로 나눈 몫을 저장하는 이유는
# a, b가 홀수이건 짝수이건 1을 더해서 몫으로 나누면
# 다음 라운드의 번호를 구할 수 있음
return answer
풀이 해석
- a, b 를 (a+1) // 2, (b+1) // 2의 형태로 최신화하며 a,b가 같아졌을 경우 answer를 출력하낟
배울 점
- a!= b의 조건으로 while문 돌리기
- a와 b에 1을 더하여 2로 나누는 사고
댓글남기기