[ 백준 ] 10864 친구 [ js ]

Ann·2023년 9월 13일
0

Algorithm

목록 보기
51/53

10864 친구

문제

도현이네 반 N명의 친구 관계가 입력으로 주어진다. 이때, 각 사람의 친구의 수를 출력하는 프로그램을 작성하시오.

각 사람은 1번부터 N번까지 번호가 매겨져 있다. A와 B가 친구면, B와 A도 친구이다. 자기 자신과 친구인 경우, 즉 A와 B가 같은 경우는 없다.

입력

첫째 줄에 도현이네 반 학생의 수 N(1 ≤ N ≤ 1,000), M(0 ≤ M ≤ 1,000)이 주어진다.

둘째 줄부터 M개의 줄에는 친구 관계를 나타내는 A B가 한 줄에 하나씩 주어진다.

A B가 입력으로 주어진 경우에 A B 또는 B A가 다시 입력으로 주어지는 경우는 없다.

출력

첫째 줄부터 N번째 줄에 걸쳐서 각 학생의 친구의 수를 1번 학생부터 출력한다.

풀이

// let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
let input = [ 
			`5 5`,
			`1 2`,
			`3 4`,
			`2 5`,
			`5 1`,
			`4 2`
            ]

let [N, M] = input[0].split(' ').map(n=>parseInt(n));
let answer = [];
for(let i=0; i<N; i++){
    answer.push([])
};
for(let i=1; i<=M; i++){
    let [A, B] = input[i].split(' ').map(n=>parseInt(n));
    answer[A-1].push(B);
    answer[B-1].push(A);
}
for(let i=0; i<N; i++){
    console.log(answer[i].length)
}

학생 수에 맞춰서 answer에 빈 배열을 push하고
A B가 입력으로 주어진 이후에 중복으로 A B 또는 B A가 입력으로 주어지지 않기 때문에 각 입력에서 해당되는 index의 배열로 push를 했다.
마지막으로 answer[i]의 length를 출력하여 풀이하였다.

profile
안녕하세요

0개의 댓글