Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 꿀단집
- nestjs
- redis
- aws
- 중간이들
- 코드잇
- JavaScript
- node.js
- 방송대
- 파이썬프로그래밍기초
- 개발자취업
- Git
- SQL
- 엘리스sw트랙
- TiL
- Cookie
- CSS
- presignedurl
- MySQL
- HTML
- 방송대컴퓨터과학과
- 데이터베이스시스템
- 파이썬
- 코딩테스트준비
- 코딩테스트
- Python
- 항해99
- 99클럽
- 유노코딩
- 프로그래머스
Archives
- Today
- Total
배꼽파지 않도록 잘 개발해요
99클럽 코테 스터디 31일차 TIL - Clear Cold Water 본문
function calculateDistances(N, connections) {
// 트리 구조를 초기화
const tree = new Map();
for (let i = 1; i <= N; i++) {
tree.set(i, []);
}
// 입력된 연결 정보를 바탕으로 트리 구축
for (const [E_i, B1_i, B2_i] of connections) {
tree.get(E_i).push(B1_i);
tree.get(E_i).push(B2_i);
}
// 거리를 -1로 초기화하고, 농장(파이프 1)의 거리를 1로 설정
const distance = new Array(N + 1).fill(-1);
distance[1] = 1;
// BFS를 사용하여 거리를 계산
const queue = [1];
while (queue.length > 0) {
const current_pipe = queue.shift();
const current_distance = distance[current_pipe];
// 연결된 모든 파이프를 순회
for (const child of tree.get(current_pipe)) {
if (distance[child] === -1) { // 아직 방문하지 않은 경우
distance[child] = current_distance + 1;
queue.push(child);
}
}
}
// 첫 번째 요소(인덱스 0은 사용하지 않음)를 제외한 거리 배열 반환
return distance.slice(1);
}
// 입력 읽기 및 메인 로직
function main() {
const input = require('fs').readFileSync('/dev/stdin', 'utf8').trim().split('\n');
// N과 C를 읽기
const [N, C] = input[0].split(' ').map(Number);
// 연결 정보를 읽기
const connections = input.slice(1).map(line => line.split(' ').map(Number));
// 거리를 계산
const distances = calculateDistances(N, connections);
// 거리 출력
for (const dist of distances) {
console.log(dist);
}
}
// 메인 함수 실행
main();
728x90
'코딩테스트 > 99클럽' 카테고리의 다른 글
99클럽 코테 스터디 31일차 TIL - Number of Good Leaf Nodes Pairs (0) | 2024.08.24 |
---|---|
99클럽 코테 스터디 31일차 TIL - Bad Grass (0) | 2024.08.23 |
99클럽 코테 스터디 29일차 TIL - Arranging Coins (0) | 2024.08.21 |
99클럽 코테 스터디 29일차 TIL - Missing Number (0) | 2024.08.20 |
99클럽 코테 스터디 28일차 TIL - 프로세스 (0) | 2024.08.19 |