IT보안관의 공부 클라우드

[프로그래머스 Level2]예상 대진표 본문

코딩 테스트/프로그래머스

[프로그래머스 Level2]예상 대진표

ㅡㅡㅡㅡㄷ 2022. 7. 2. 13:43

https://programmers.co.kr/learn/courses/30/lessons/12985?language=python3# 

 

코딩테스트 연습 - 예상 대진표

△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N

programmers.co.kr

def solution(n,a,b):
    answer = 0
    while 1:
        answer+=1
        # 1 2
        if (a+1 == b and (a%2 != 0 and b % 2 == 0)) or (b+1 == a and (b%2 != 0 and a %2 == 0)):
            return answer
        if a % 2 != 0: a+=1
        a = int(a / 2)
        if b % 2 != 0: b+=1
        b = int(b / 2)
    return answer

 

처음에 max, min 함수를 통해 a,b의 큰 값을 정하고 그걸 바탕으로 종료 조건을 걸어줬는데, 시간 초과 에러가 발생함.

이 문제에서는 max, min 함수보다 if문의 조건을 통한 종료 조건이 더 효율적인 듯

Comments