본문 바로가기
PS/프로그래머스

프로그래머스 예상대진표 python: Queue

by 지기_ 2021. 6. 16.
반응형

1. 문제

 

2. 풀이

 

3. 구현

 

def solution(n,a,b):
    answer = 0
    q = deque([i for i in range(1,n+1)])
    
    while(a!=b):
        a = (a+1)//2
        b = (b+1)//2
        answer+=1
    return answer

 

예시 테스트케이스만 맞고 나머지는 틀린다.

from collections import deque

def solution(n,a,b):
    answer = 0
    q = deque([i for i in range(1,n+1)])
    
    while(q):
        x = q.popleft()
        y = q.popleft()
        
        if [x,y] == [a,b] or [x,y] == [b,a]:
            answer+=1
            break
        
        if a in [x, y]: # list를 쓰면 한 줄로 item 검색이 가능
            q.append(a)
            answer+=1
            
        elif b in [x, y]: # list를 쓰면 한 줄로 item 검색이 가능
            q.append(b)
            
        else:
            q.append(x)
    
    return answer

 

원호가 수정해줌

if - elif - else 로 써야 한 경우만 보는데 

if - if - else로 써서 앞의 if와 뒤의 else를 두 번 보는 경우가 생겼다. if - ( if - else )로 봐서..

반응형

댓글