728x90
대진표 문제의 경우 거의 공통적으로 식(?)이 있는 것 같다.
매번 풀 때 마다 기억이 잘 안나서 헤맸는데 블로그에 정리해서 잊지 않으려고 한다!
📌 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12985
👩💻 전체코드
def solution(n,a,b):
answer = 0
while a != b:
answer += 1
a = (a+1) // 2
b = (b+1) // 2
return answer
공통적으로 2로 나눈 몫이 같게 나올 때 까지 반복해주면 된다!
a+1, b+1을 해주는 이유는
a가 1, b가 2인 경우 사실 1번째에서 겨루게 되지만, a//2 => 0, b//2 => 1이 되므로 달라지기 때문이다.
그래서 a+1, b+1을 해준다면 모두 1,1 이 나오므로 return 1을 해줄 수 있어진다.
728x90
'ⓒⓞⓓⓘⓝⓖⓣⓔⓢⓣ > ⓟⓨⓣⓗⓞⓝ' 카테고리의 다른 글
[프로그래머스 / 파이썬] 이중우선순위큐 (0) | 2023.06.04 |
---|---|
[SW expert / 파이썬] 무한 문자열 (1) | 2023.05.17 |
[프로그래머스/파이썬] 위장 (0) | 2023.04.05 |
[python] 단계별로 풀어보기 - 17단계 (0) | 2021.08.17 |
[python] 단계별로 풀어보기 - 16단계 (0) | 2021.08.14 |
댓글