https://school.programmers.co.kr/learn/courses/30/lessons/258711
헐..어렵다..!!
function solution(edges) {
var [dot,dounut,bar,eight]=[0,0,0,0];
var graph =edges.reduce((map,key)=>{
if(!map.has(key[0])){
map.set(key[0],[1,0])
}else{
const [give,receive]=map.get(key[0]);
map.set(key[0],[give+1,receive]);
}
if(!map.has(key[1])){
map.set(key[1],[0,1])
}else{
const [give,receive]=map.get(key[1]);
map.set(key[1],[give,receive+1]);
}
return map;
},new Map())
for(let [key, value] of graph){
const [give,receive]=value;
if(give>1&&receive==0){
dot = key; //정점 찾기 (정점은 give>=2, receive ==0)
}
else if(give==0&& receive>0)bar++; //막대그래프 찾기 (최상단의 막대그래프는 give==0, receive>0)
else if(give>=2&& receive>=2)eight++;
}
dounut = graph.get(dot)[0]-eight-bar; //전체 그래프 개수: 정점과 이어진 선(give) 개수
//전체 - 막대 - 8자그래프 = 도넛그래프 개수
return [dot,dounut,bar,eight];
}
그림을 잘 보고 그래프마다의 특성을 찾아내야 하는구만
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 달리기 경주 js javascript (0) | 2024.05.29 |
---|---|
[프로그래머스] 요격 시스템 / 단속 카메라 js javascript (0) | 2024.05.23 |
[프로그래머스] PCCP 기출문제 1번 붕대 감기 js javascript (0) | 2024.05.17 |
[프로그래머스] 가장 많이 받은 선물 js javascript (0) | 2024.05.14 |
[프로그래머스] 공 던지기 js javascript (0) | 2024.05.10 |