https://acmicpc.net/problem/5533
문제
풀이
n = int(input())
arr = [list(map(int,input().split())) for _ in range(n)]
ans = [0]*n
for i in range(3):
d = {}
for j in range(n):
score = arr[j][i]
if score in d:
d[score] += 1
else:
d[score] = 1
for k in range(n):
score = arr[k][i]
if d[score] == 1:
ans[k] += score
print('\n'.join(map(str,ans)))
1. 참가자 수를 n으로 받고 점수를 n x 3인 2차원 리스트에 저장
2. 정답 배열을 n만큼 0으로 할당
3. row가 참가자 수이고, column이 게임 수이므로, column부터 for문을 돌림.
4. column = 0 일 때 -> 1번째 게임
5. 딕셔너리로 이번 게임에 나온 점수인지를 체크
6. 첫번째 게임의 점수를 딕셔너리에 모두 저장했다면, 한 번만 나온 점수를 확인하고 그 참가자에게 점수를 줌
7. 다음 게임으로 넘어감
'Koala - 15기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 1100번: 하얀 (0) | 2024.08.04 |
---|---|
[백준/Python] 11728번: 배열 합치기 (0) | 2024.08.04 |
[백준/Python] 10798번 : 세로읽기 (0) | 2024.08.04 |
[백준/Python] 18406번: 럭키 스트레이트 (0) | 2024.08.03 |
[백준/Python] 11179번: 2진수 뒤집기 (0) | 2024.07.29 |