[ 백준 ] 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개의 댓글

관련 채용 정보