본문 바로가기
ⓒⓞⓓⓘⓝⓖⓣⓔⓢⓣ/ⓟⓨⓣⓗⓞⓝ

[프로그래머스 / 파이썬] 예상 대진표

by heaven00 2023. 5. 30.
728x90

 

대진표 문제의 경우 거의 공통적으로 식(?)이 있는 것 같다.

매번 풀 때 마다 기억이 잘 안나서 헤맸는데 블로그에 정리해서 잊지 않으려고 한다!

 

 

📌 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12985

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

👩‍💻 전체코드

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

댓글