기록방

BOJ_1547 : 공 본문

CodingTest/Python

BOJ_1547 : 공

Soom_1n 2022. 8. 22. 21:52

👉 문제링크

 

1547번: 공

첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것

www.acmicpc.net



🔸 문제 분석 🔸

  • 공의 위치는 계속 첫 위치이고, 컵 끼리 자리가 변한다.
    • 다시 말해보면 공은 상관없고, 컵을 바꾸다가 첫 번째 자리 컵이 무엇인지 출력한다.

🔸 코드 🔸

m = int(input())

cup = [1,2,3]

for i in range(m):
    x, y = map(int,input().split())
    x_idx = cup.index(x)
    y_idx = cup.index(y)
    cup[x_idx], cup[y_idx] = cup[y_idx], cup[x_idx]
print(cup[0])

🔸 코드 해석 🔸

  • 입력된 번호의 컵 위치를 계속 추적해야 하므로 index() 함수를 사용했다.
  • 두 원소의 자리 변경 swap은 간단히 한 줄로 구현했다.

🔸 end 🔸

  • 간단한 문제였지만 컵의 인덱스와 컵 번호를 착각했었다.
  • swap을 C++이나 java에서 쓰는대로 쓰다가 python은 더 편한 방법이 있다는걸 알았다.

728x90

'CodingTest > Python' 카테고리의 다른 글

BOJ_1308 : D-Day  (0) 2022.08.24
BOJ_2816 : 디지털 티비  (0) 2022.08.23
BOJ_1676 : 팩토리얼 0의 개수  (0) 2022.08.21
BOJ_18111 : 마인크래프트  (0) 2022.08.21
BOJ_2805 : 나무 자르기  (0) 2022.08.20