백준/ Silver 1 문제 , 백준 Node.js 자바스크립트 14675 , 단절점과 단절선
✔️Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감 🧑💻
1. 최상
2. 상
3. 중
4. 하
이해도 🙆♂️
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
덧붙일 말 🏷️
아직, Node.js 로는 통과하지 못하였다. 시간초과가 발생하는데, 똑같은 로직으로 파이썬 통과는 또 되어가지고 질문게시판에 질문을 남겨놓은 상태이다. 이 글은 추후 수정하겠다.
문제 출처 🏠
https://www.acmicpc.net/problem/14675
질의
https://www.acmicpc.net/board/view/102681
요구사항 📋
N이 주어지고, N개의 간선이 주어진다.
q가 주어지고, q개의 질의가 주어진다.
질의는 t k 로 이루어져있으며,
t가 1일경우 단절점인지, t가 2일경우 단절선인지를 묻는 질의다.
각 질의에 맞게 'yes' or 'no' 를 답하자.
해결 전략 📝
단절점과 단절선의 특징을 먼저 알자.
트리에서 부모 노드가 없는 경우나 자식노드가 없는 경우 단절점이 아니다.
또한, 이 문제에서는 모든 간선이 단절선.
코드 (통과 X)
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
let N = Number(input[0]);
let tree = Array.from({ length: N + 1 }).fill(0);
for (let i = 1; i < N - 1; i++) {
let [a, b] = input[i].split(" ").map(Number);
tree[a] += 1;
tree[b] += 1;
}
const q = Number(input[N]);
for (let j = N + 1; j <= N + q; j++) {
let [t, k] = input[j].split(" ");
if (t === "1") console.log(tree[Number(k)] === 1 ? "no" : "yes");
else if (t === "2") console.log("yes");
}
해당 로직이 틀린 부분이 있던가, 실수한 부분이 있다면 댓글 적극 부탁드립니다!!!
수정과 피드백을 원합니다!!
후기 🧑💻
백준에서는 node.js 로는 안풀리는데, 파이썬으로 바꿔서 풀어보면 풀리는 경우들이 여러 있었다.
그래서 이렇게 똑같은 로직으로 node.js로만 안풀리는 듯한 일이 생기면 직접 질문을 남겨서 확인해봐야하는 경우가 있다.
반응형
'알고리즘 공부 > 백준 - 자바스크립트' 카테고리의 다른 글
백준/ Gold 4 문제 , 백준 Node.js 자바스크립트 17928 , 오큰수 (0) | 2022.10.29 |
---|---|
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 1068 , 트리 (0) | 2022.10.27 |
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 2493 , 탑 (0) | 2022.10.25 |
백준/ Silver 1 문제 , 백준 Node.js 자바스크립트 9934 , 완전 이진 트리 (0) | 2022.10.25 |
백준/ Silver 5 문제 , 백준 Node.js 자바스크립트 14929 , 귀찮아 (SIB) (0) | 2022.10.24 |