[백준/파이썬] 14614번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 14614번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
인규는 논리연산을 정말 빠르고 정확하게 해결하기로 유명하다. 교정이는 소문이 사실인지 확인하기 위해 인규에게 몇 가지 질문을 해보았다.
-
교정: “인규야, 3 & 5 는 뭐야?”
-
인규: “답은 1이야.”
-
교정: “이번에는 좀 더 어려운걸 물어봐도 돼?”
-
인규: “물론이지.”
-
교정: “그러면 12345678 44555 는 뭐야?” -
인규: “답은 12382031 이야.”
-
거듭되는 질문에도 인규가 모두 답을 맞추자 교정이는 시험해보고 싶은게 생겼다.
-
교정: “인규야 그러면 A라는 수에 B를 C번 XOR한 수도 계산할 수 있어?”
- 인규: “그런건 1초면 충분해.”
교정이는 인규가 1초만에 내놓은 대답이 맞는지 확인하고 싶다. 교정이를 대신해 인규가 내놓은 대답이 맞는지 비교하기 위해 A에 B를 C번 XOR 한 수를 출력하는 프로그램을 작성해주자.
입력 요약
입력의 첫째 줄에 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B ≤ 108, 1 ≤ C ≤ 10100)
출력 요약
A에 B를 C번 XOR한 결과를 출력한다.
코드
a,b,c=map(int,input().split())
for i in range(c%2):a^=b
print(a)
설명
핵심은 구현 관점에서 인규는 논리연산을 정말 빠르고 정확하게 해결하기로 유명하다. 교정이는 소문이 사실인지 확인하기 위해 인규에게 몇 가지 질문을 해보았다.
-
교정: “인규야, 3 & 5 는 뭐야?”
-
인규: “답은 1이야.”
-
교정: “이번에는 좀 더 어려운걸 물어봐도 돼?” …를 만족하도록 로직을 구성하는 것입니다.
코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.
경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.
댓글남기기