![[프로그래머스] 예상 대진표 (python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj2LKz%2FbtsHTVuFDLN%2FRCP446Yo1WG0ZK41fJaPNk%2Fimg.jpg)
https://school.programmers.co.kr/learn/courses/30/lessons/12985
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
대진표를 그려보면 각 라운드에 진출 할 때마다 숫자가 2로 나누어지는 것을 볼 수 있을 것이다.
a와 b를 나누고 난 값이 같아지는 경우에는 만나서 대결을 진행한 것이라고 볼 수 있기 때문에, 우리는 a와 b의 값이 같아질 때까지 2로 나누어주면 된다.
a와 b에 1을 더하는 이유는, 각 숫자가 홀수일 경우에 잘못 배정되는 경우를 방지하기 위해서이다.
예를 들어서 7을 2로 나누면 3.5가 되어서 정수만 보면 3이 되는데, 이렇게 되면 우리가 기대하는 바와 달라지므로 미리 1을 더해서 2로 나눈다.
그렇게 하면 정상적으로 잘 배치되는 것을 볼 수 있다.
def solution(n, a, b):
answer = 0
while a != b:
answer += 1
a, b = (a + 1) // 2, (b + 1) // 2
return answer
references
https://school.programmers.co.kr/learn/courses/30/lessons/12985
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'CSE > 알고리즘 (algorithm)' 카테고리의 다른 글
[프로그래머스] 스킬트리 (python) (0) | 2024.06.11 |
---|---|
[프로그래머스] 기지국 설치 (python) (0) | 2024.06.10 |
[프로그래머스] 땅따먹기 (python) (0) | 2024.06.08 |
[프로그래머스] 숫자의 표현 (python) (0) | 2024.06.07 |
[프로그래머스] 2개 이하로 다른 비트 (python) (0) | 2024.06.07 |
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!