- 1, 2, 3, 4, 5, 6, 7, 8을 예시로 들었을때, 다음 라운드에서는 (1, 2 승자), (3, 4 승자), (5, 6 승자), (7, 8 승자)가 도달한다.
- 즉, 본인의 위치가 큰 순서 // 2로 줄게 된다. 따라서 작은 순위인 경우에는 큰 순위로 맞춰준 다음(+1) 2로 나눈다.
- 진행하다가 a == b, 즉, 작은 순위 + 1 = 큰 순위가 될 때 맞붙게 되므로, 그때의 라운드를 리턴해주면 된다.
def solution(n,a,b):
answer = 1
while True:
if a % 2 == 1:
a = a + 1
if b % 2 == 1:
b = b + 1
if a == b:
break
answer += 1
a = a // 2
b = b // 2
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글
[ Lv 2 ] H-Index (0) | 2021.06.24 |
---|---|
[ Lv 2 ] 조이스틱 (0) | 2021.06.24 |
[ Lv 2 ] 전화번호 목록 (0) | 2021.06.23 |
[ Lv 2 ] 프린터 (0) | 2021.06.23 |
[ Lv 2 ] 행렬 테두리 회전하기 (0) | 2021.06.23 |