[python_파이썬_Pass]백준_1547번_공_시뮬레이션_풀이
2024. 8. 26. 19:54ㆍ코드리뷰
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/WSAIqn6prZQ?feature=shared
회사 점심시간 사이 2문제 해결.
<첫번째 시도 : 맞았습니다.>
실제로는 여러 방향으로 시도를 하면서 잘못된 답이 나오고 최종 코드로만 제출을 했다.
처음에는 answer[answer.index(X)], answer[answer.index(Y)] = Y, X를 했는데 계속 오류가 나서 곰곰히 생각을 해 보았더니 answer[answer.index(X)] = Y가 먼저 실행되고, 뒤를 이어 answer[answer.index(Y)]가 실행되면 기존 answer가 수정된 상태로 index가 구해지므로 의도치 않은 결과가 나온다는 걸 이해했다.
import sys
input = sys.stdin.readline
M = int(input())
answer = [0, 1, 2, 3]
"""요소의 자리를 변경"""
for _ in range(M):
X, Y = map(int, input().split())
IX, IY = answer.index(X), answer.index(Y)
answer[IX], answer[IY] = Y, X
print(answer[1])
<두번째 시도 : 맞았습니다. 다른 사람풀이 조금 참고>
이 문제를 처음 접했을때 생각한 방향이 아래의 코드였다.
하지만 정답이 들어 있는 컵을 기준으로 들어 있지 않은 컵 2개의 자리가 바뀌는 예외 상황까지 고려해야 한다고 생각했기에 모든 컵들의 이동을 추적할 수 있게 코드를 작성했다.
하지만, 결국 정답이 들어 있는 시작컵 1번을 기준으로 바뀐 컵들만 보면 되기 때문에 굳이 index를 사용해가면서까지 코드를 설계할 필요가 없을 것 같다.
import sys
input = sys.stdin.readline
M = int(input())
answer = 1
for _ in range(M):
X, Y = map(int, input().split())
if X == answer:
answer = Y
elif Y == answer:
answer = X
print(answer)
728x90
반응형
'코드리뷰' 카테고리의 다른 글
[python_파이썬_Fail_미해결]백준_14888번_연산자 끼워넣기_백트레킹_풀이 (0) | 2024.08.26 |
---|---|
[python_파이썬_Pass]백준_2947번_나무 조각_시뮬레이션_풀이 (0) | 2024.08.26 |
[python_파이썬_Pass]백준_15652번_N과 M(4)_백트래킹_풀이 (0) | 2024.08.25 |
[python_파이썬_Pass]백준_15651번_N과 M(3)_백트래킹_풀이 (0) | 2024.08.25 |
[python_파이썬_Half Pass]백준_15650번_N과 M(2)_백트래킹_풀이 (0) | 2024.08.19 |