Koala - 5기/기초 알고리즘 스터디

[백준/python] 5533번 유니크

fanatel 2022. 2. 14. 03:29

https://www.acmicpc.net/problem/5533

 

5533번: 유니크

첫째 줄에 참가자의 수 N이 주어진다. (2 ≤ N ≤ 200) 둘째 줄부터 N개 줄에는 각 플레이어가 1번째, 2번째, 3번째 게임에서 쓴 수가 공백으로 구분되어 주어진다.

www.acmicpc.net

문제분석

2차원 리스트로 입력받아 for문을 이용해 숫자를 비교한다.

 

n = int(input())
score = [[], [], []]
sum = []

for i in range(n):
    a, b, c = map(int, input().split())
    score[0].append(a)
    score[1].append(b)
    score[2].append(c)
    
for i in range(n):
    get = 0
    for j in range(3):
        if score[j].count(score[j][i]) == 1:
            get += score[j][i]
    sum.append(get)
for i in sum:
    print(i)

풀이

2차원 리스트로 n명이 입력한 숫자를 입력한다.

그럼 n행 x 3열의 행렬이 만들어지는데, 이때 각 열의 값 중 입력한 값이 자신밖에 없으면(=이 숫자를 입력한 게 오직 하나밖에 없으면) 합 리스트에 숫자를 추가한다.

이후 for 문을 이용해 합 리스트를 출력한다.