백준 #11581 Lie Detector
문제 링크
문제 설명
1번부터 $N$번까지의 목격자 증인이 있다. $i$번째 증인은 $i-1$번째 증인의 진술에 대해 증언한다. $N$번째 증인의 진술이 참일때 최초의 증인의 진술이 참인지 거짓인지 판단하는 문제
코드
import sys
input = sys.stdin.readline
N = int(input())
arr = []
for _ in range(N):
x = input().rstrip()
if x == "TRUTH":
arr.append(1)
else:
arr.append(0)
prev = arr[-1]
for i in range(N - 2, -1, -1):
if prev:
prev = arr[i]
else:
prev = (arr[i] + 1) % 2
if prev:
print("TRUTH")
else:
print("LIE")
풀이
진실은 1, 거짓은 0로 배열에 담은 후에 먼저 prev
라는 변수에 마지막 증인의 정보를 담았다.
$N-1$번째 증인부터 거꾸로 탐색하면서 prev
가 현재 참이라면 현재 진술로 갱신해주고 참이 아니라면 반대의 진술로 갱신해주었다.
solved.ac
에 랜덤 마라톤이란게 생겼다. 1주일동안 8문제를 푸는건데 안그래도 매일 문제 고르기 귀찮았는데 잘됐다!
특이한점은 수요일시작이라는거! 내일부터 잘 달려보자!
댓글남기기