[Python] 프로그래머스(Lv2) - 예상 대진표
안녕하세요 :)
https://programmers.co.kr/learn/courses/30/lessons/12985
프로그래머스 예상 대진표 문제입니다.
풀이
a와 b의 차이가 1이면 서로 붙게 되므로 return하면 됩니다.
여기서, 주의할 점은 단순히 1차이 나면 되는게 아니라
1 2 또는 3 4 이렇게 붙게되어야 한다는 점입니다.
2 3 이라면 서로 붙게되는 경우가 아닙니다 !
(2와 3이라면 1 2 / 3 4 승패 결정되고 나서 1 2로 붙게되어야 정답이됨)
즉, a와 b가 1만큼 차이나면서 둘 중 작은 값이 '홀수'여야만 서로 붙게되는 경우가 됩니다.
def solution(n,a,b):
round = 1
while True:
if abs(a-b) == 1 and min(a, b) % 2 == 1:
break
round += 1
if a % 2 == 1:
a += 1
if b % 2 == 1:
b += 1
a //= 2
b //= 2
return round
Author And Source
이 문제에 관하여([Python] 프로그래머스(Lv2) - 예상 대진표), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kerri/Python-프로그래머스Lv2-예상-대진표저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)