728x90
문제
상근이와 친구들은 MT에 가서 아래 설명과 같이 재미있는 게임을 할 것이다.
각 플레이어는 1이상 100 이하의 정수를 카드에 적어 제출한다.
각 플레이어는 자신과 같은 수를 쓴 사람이 없다면, 자신이 쓴 수와 같은 점수를 얻는다.
만약, 같은 수를 쓴 다른 사람이 있는 경우에는 점수를 얻을 수 없다.
상근이와 친구들은 이 게임을 3번 했다.
각 플레이어가 각각 쓴 수가 주어졌을 때, 3번 게임에서 얻은 총 점수를 구하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/5533
입력
첫째 줄에 참가자의 수 N이 주어진다. (2 ≤ N ≤ 200)
둘째 줄부터 N개 줄에는 각 플레이어가 1번째, 2번째, 3번째 게임에서 쓴 수가 공백으로 구분되어 주어진다.
출력
각 플레이어가 3번의 게임에서 얻은 총 점수를 입력으로 주어진 순서대로 출력한다.
예제
# input
5
100 99 98
100 97 92
63 89 63
99 99 99
89 97 98
# output
0
92
215
198
89
문제 풀이
import sys
input = sys.stdin.readline
N = int(input())
arr = [[], [], []]
# N번 동안 각각의 경기 점수 입력
for _ in range(N):
x, y, z = map(int, input().split())
arr[0].append(x)
arr[1].append(y)
arr[2].append(z)
answer = [0] * N
for i in range(3):
# 각 값이 해당 회차 경기에서 중복되는지 확인
for j in range(N):
# 값이 중복되면 pass
if arr[i].count(arr[i][j]) >= 2:
pass
# 중복되지 않으면 점수에 추가
else:
answer[j] += arr[i][j]
for a in answer:
print(a)
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90