문제
https://programmers.co.kr/learn/courses/30/lessons/12985
코딩테스트 연습 - 예상 대진표
△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N
programmers.co.kr
코드
1) math이용
import math
def solution(n,a,b):
exponent_n = int(math.log2(n))
count = 1
while count < exponent_n:
a, b = math.ceil(a/2), math.ceil(b/2)
if a == b:
break
else:
count += 1
return count
2) math 이용 X
첫번째 방법에서 굳이 지수랑 ceil를 이용할 필요 없는거 같아 다시 해보니 훨씬 낫다.
def solution(n,a,b):
count = 0
while a != b:
a, b = (a+1)//2, (b+1)//2
count += 1
return count
결과 비교
'⏳ 알고리즘 > python 알고리즘 문제 풀이' 카테고리의 다른 글
프로그래머스 - LV3. 베스트앨범 (0) | 2021.06.15 |
---|---|
프로그래머스 - [1차] 뉴스 클러스터링(카카오 2018 블라인드 채용) (0) | 2021.06.11 |
프로그래머스 - LV2. 오픈채팅방(카카오 2019 블라인드 채용) (0) | 2021.06.07 |
프로그래머스 - LV1. 신규 아이디 추천(카카오 2021 블라인드 채용) (0) | 2021.06.07 |
프로그래머스 - LV1. 키패드 누르기(카카오 2020 인턴쉽) (0) | 2021.06.04 |