:link:문제 링크

[11581 Lie Detector]

:question:문제 설명

1번부터 $N$번까지의 목격자 증인이 있다. $i$번째 증인은 $i-1$번째 증인의 진술에 대해 증언한다. $N$번째 증인의 진술이 참일때 최초의 증인의 진술이 참인지 거짓인지 판단하는 문제

:pencil2:코드

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")

:memo:풀이

진실은 1, 거짓은 0로 배열에 담은 후에 먼저 prev라는 변수에 마지막 증인의 정보를 담았다. $N-1$번째 증인부터 거꾸로 탐색하면서 prev가 현재 참이라면 현재 진술로 갱신해주고 참이 아니라면 반대의 진술로 갱신해주었다.

solved.ac에 랜덤 마라톤이란게 생겼다. 1주일동안 8문제를 푸는건데 안그래도 매일 문제 고르기 귀찮았는데 잘됐다! 특이한점은 수요일시작이라는거! 내일부터 잘 달려보자!

댓글남기기