본문 바로가기

프로그래머스, 백준

백준_1547번 공

 

 

문제와 입출력 조건은 다음과 같다.

처음에 3개의 컵이 있고 1번 컵 아래에 공이 있다.

두 컵의 위치를 서로 바꿀 때마다 공의 위치를 추적해야 한다.

공은 컵과 함께 이동하지 않고 원래 있던 자리에 그대로 있다.

 

 

공이 몇 번 컵 아래 있는지만 알면 된다.

 

 

 

공이 있는 컵이 이동하면 -> 공 위치를 업데이트

공이 없는 컵들끼리 이동하면 -> 아무것도 안 해도 됨

 

 

처음에 공은 1번 컵 아래에 있고 공의 현재 위치를 추적
두 컵의 위치를 바꿀 때마다 공이 있는 컵이 이동하는 경우에만 현재 위치 업데이트
최종 컵 번호 출력..

 

 

def find_ball_position(M, swaps):
    ball_position = 1
    
    # 각각의 컵 위치 교환
    for x, y in swaps:
        # 공이 x위치에 있다면 y위치로 이동
        if ball_position == x:
            ball_position = y
        # 공이 y위치에 있다면 x위치로 이동
        elif ball_position == y:
            ball_position = x
        # 공이 x나 y 위치에 없다면 그대로 유지
    
    return ball_position

def main():
    M = int(input())
    
    swaps = []
    for _ in range(M):
        x, y = map(int, input().split())
        swaps.append((x, y))
    
    # 최종적으로 공이 있는 컵의 번호 찾아 출력
    result = find_ball_position(M, swaps)
    print(result)

if __name__ == "__main__":
    main()

'프로그래머스, 백준' 카테고리의 다른 글

백준_1453번 피시방 알바  (0) 2024.11.27
백준_1098번 쌍둥이 마을  (0) 2024.11.20
백준_1074번_Z  (0) 2024.11.16
1033번 칵테일  (0) 2024.11.13
백준_1063번 킹  (0) 2024.11.11