2022년 8월 28일에 작성
https://www.acmicpc.net/problem/1547
1547번: 공
첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것
www.acmicpc.net
문제 분석
1번, 2번, 3번 컵이 일렬로 있을 때, 공의 위치는 1번 컵 위치로 고정이다.
컵의 번호 2개를 골랐을 때, 그 컵들의 위치를 서로 바꾼다.
컵의 위치를 M번 반복해서 바꾸고 난 이후에 공이 들어있는 컵의 번호를 구한다.
소스 코드 (⭕)
M = int(input()) # 컵의 위치를 바꿀 횟수 입력
cups = [1, 2, 3] # 1번, 2번, 3번 컵 리스트
for _ in range(M): # M번 반복
x, y = map(int, input().split()) # x, y 값 입력 받기
c1 = cups.index(x) # x의 인덱스 가져오기
c2 = cups.index(y) # y의 인덱스 가져오기
cups[c1], cups[c2] = cups[c2], cups[c1] # 컵 위치 바꾸기
print(cups[0]) # 공이 들어있는 컵번호 출력
코드 분석
1. 공의 위치를 바꿀 횟수인 M을 입력하고, cups 리스트에 컵의 번호 1, 2, 3을 넣는다.
2. for문으로 M번 반복한다.
2-1. 컵의 위치를 바꿀 컵 번호 x, y를 입력한다.
2-2. x와 y의 인덱스, 즉 x, y의 위치를 c1, c2에 대입한다.
2-3. c1과 c2를 바꿔서 컵의 위치를 바꾼다.
3. 공의 위치는 맨 처음 1번 컵 자리에 고정이므로, cups[0] 위치에 있는 컵의 번호를 출력한다.
end
문제에서 출력 부분의 -1은 뭔가 싶어서 검색해봤더니 함정이라고 한다..!
공이 사라질 수가 없기 때문에...
문제에 함정도 있다니 충격❗
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[C]백준_10430 : 나머지 (0) | 2023.06.24 |
---|---|
[Python]백준_2941 : 크로아티아 알파벳 (0) | 2023.06.23 |
[Python]백준_15828 : Router (0) | 2023.06.22 |
[Python]백준_2161 : 카드1 (0) | 2023.06.21 |
[Python]백준_10773 : 제로 (0) | 2023.06.02 |