[ 백준 ] 5533 유니크 [ js ]

Ann·2022년 9월 11일
0

Algorithm

목록 보기
21/53

5533 유니크

문제

상근이와 친구들은 MT에 가서 아래 설명과 같이 재미있는 게임을 할 것이다.
각 플레이어는 1이상 100 이하의 정수를 카드에 적어 제출한다. 각 플레이어는 자신과 같은 수를 쓴 사람이 없다면, 자신이 쓴 수와 같은 점수를 얻는다. 만약, 같은 수를 쓴 다른 사람이 있는 경우에는 점수를 얻을 수 없다.
상근이와 친구들은 이 게임을 3번 했다. 각 플레이어가 각각 쓴 수가 주어졌을 때, 3번 게임에서 얻은 총 점수를 구하는 프로그램을 작성하시오.

입력

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

출력

각 플레이어가 3번의 게임에서 얻은 총 점수를 입력으로 주어진 순서대로 출력한다.

풀이

// let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let input = [5,
`100 99 98`,
`100 97 92`,
`63 89 63`,
`99 99 99`,
`89 97 98`,
]
let N = parseInt(input[0]);
let round1 = [];
let round2 = [];
let round3 = [];
for(let i=1; i<=N; i++){
    let arr = input[i].split(' ').map(n=>parseInt(n));
    round1.push(arr[0]);
    round2.push(arr[1]);
    round3.push(arr[2]);
};
for(let i=0; i<round1.length; i++){
    let sum=0;
    if(round1.indexOf(round1[i])===round1.lastIndexOf(round1[i])){
        sum += round1[i];
    }
    if(round2.indexOf(round2[i])===round2.lastIndexOf(round2[i])){
        sum += round2[i];
    }
    if(round3.indexOf(round3[i])===round3.lastIndexOf(round3[i])){
        sum += round3[i];
    }
    console.log(sum);
}

3번의 게임의 각각의 라운드에서 중복된 숫자가 있는지 체크하는 방법으로
해당 숫자의 indexOf와 lastIndexOf가 같은 값인지 비교하였다
같은 값인 경우 점수(sum)에 더하여 합을 구하고 출력했다

profile
안녕하세요

0개의 댓글