728x90
SMALL
문제 이해
- N명의 선수들중 A선수와 B선수가 붙게되는 라운드를 구하여라
- 두선수는 무조건 이겨서 올라간다.
- 이기면 앞션 참가자 번호의 첫번째 번호로 올라간다.
경기를 이기면 앞자리 번호로 이동하는데 번호 생성 규칙이 A/2 의 올림이다.
승부를 볼때마다 A와 B의 차례인지 확인한다.
A가 2의 n승일때 B = A-1 , B가 2의 n승일때 A = B-1 이면 A와 B의 승부 차례이다.
import math
def solution(n,a,b):
answer = 1
while True:
if a % 2 == 0 and b == (a-1):
break
elif b % 2 == 0 and a == (b-1):
break
else:
a = math.ceil(a/2)
b = math.ceil(b/2)
answer += 1
return answer
728x90
LIST
'파이썬 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 올바른 괄호 - Python(파이썬) (0) | 2024.03.23 |
---|---|
알고리즘 소수 구하기 (0) | 2024.03.23 |
[프로그래머스] 숫자 짝궁 - Python(파이썬) (0) | 2024.03.23 |
[프로그래머스] 콜라 문제 - Python(파이썬) (0) | 2024.03.23 |
[프로그래머스] 옹알이(2) - Python(파이썬) (0) | 2024.03.23 |