반응형
해당 문제는 대진표에서 대진을 하면서, A와 B가 몇 번째 붙는지를 찾는 문제다. A와 B는 무조건 계속 이긴다는 가정하고 있다. A와 B를 나누어서 결국 1, 2 혹은 3, 4 처럼 두 값의 차이가 하나 인 경우를 찾으면 된다.
def solution(n,a,b):
for i, _ in enumerate(range(n//2)):
if abs(a-b) == 1 and (a//2) != (b//2):
return i + 1
a = round(a/2 + 0.1)
b = round(b/2 + 0.1)
a//2 와 b//2가 같은 경우는 2, 3 혹은 4, 5 와 같은 경우다. 해당 경우는 다음 경기에 붙기 때문에 그 결과를 제외하고 처리를 하면 된다.
'Python > Algorithm' 카테고리의 다른 글
[프로그래머스] n^2 배열 자르기 (1) | 2023.10.23 |
---|---|
[Algorithm] 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) (0) | 2023.09.23 |
[프로그래머스] 점프와 순간 이동 - Python (0) | 2023.09.16 |
[프로그래머스] 멀리 뛰기 - Python (0) | 2023.09.16 |
[프로그래머스] 구명보트 - Python (0) | 2023.09.16 |