티스토리 뷰

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

** 해당 문제는 Python을 지원하지 않지만, 풀어보고 싶은 문제라서 시도해 보았습니다.


1. 문제 내용

 

 

2. 접근 방식

  • YES 응답을 받았다면 입력된 모든 숫자를 yes라는 집합에 넣고, NO 응답을 받았다면 입력된 모든 숫자를 no라는 집합에 넣는다.
  • 마지막에 yes 집합의 원소 중 no에도 속한 원소를 모두 제거하면, 명진이가 생각한 숫자만 남을 것이다.

 

 

3. 정답 코드

def solution(t, n):
    yes = set()
    no = set()
    for i in range(n):
        temp = list(input().split())
        numbers = list(map(int, temp[:4]))
        answer = temp[4]

        if answer == 'YES':
            for e in numbers:
                yes.add(e) # 0 5 4 2
        else:
            for e in numbers:
                no.add(e) # 4 0 1 9 2 8 7 6

    for e in no:
        if e in yes:
            yes.remove(e)
    print(f'#{t} {yes.pop()}')


t = int(input()) # 테스트 케이스 개수
for i in range(1, t + 1):
    n = int(input())
    solution(i, n)
728x90