(1).백준 5533번 유니크는 유일한 숫자를 말했을 떄 해당 숫자를 점수로 받는 라운드가 여러개 지났을 때

최종적으로 각자 참가자들의 점수를 출력해야 하는 문제였다.

 

가로면 간단하지만 세로라서 잠깐 고민을 해봤는데 for문 내부에서 가로 세로를 반대로 넣어서 돌려주면 되기 때문에

세로 방향으로 순회될 수 있도록 내부 값을 밖에서 꺼내주고 행 값을 변경하는 방식으로 중복을 찾아준 다음

중복인지 확인 후 중복이 아니면 점수를 더해주는 방식으로 해결했다.

 

const input = `5
100 99 98
100 97 92
63 89 63
99 99 99
89 97 98`.split('\n').map(el => el.split(' '))

const list = new Array(input.length -1).fill(0)

for(let i = 0 ; i < input[1].length ; i++){
    const map = {}
    
    for(let j = 1 ; j < input.length ; j++){
        if(map[input[j][i]]){
            map[input[j][i]]++
        }
        else{
            map[input[j][i]] = 1
        }
    }

    for(let j = 1 ; j < input.length ; j++){
        if(map[input[j][i]] === 1){
            list[j - 1] += Number(input[j][i])
        }
    }
}

console.log(list.join('\n'))

'회고' 카테고리의 다른 글

[개발일지] - 918  (0) 2026.01.17
[개발일지] - 916  (0) 2026.01.16
[개발일지] - 914  (0) 2026.01.14
[개발일지] - 913  (0) 2026.01.13
[개발일지] - 912(주말)  (0) 2026.01.12

+ Recent posts