[프로그래머스]여행경로 - javascript
구글링 검색 검색 후 해석. 알고나면 참 아무것도 아닌데 아직은 어렵네요. function solution(tickets) { let routes = []; function DFS(extra, current, route){ // extra(잔여티켓): [["ICN", "JFK"], ["HND", "IAD"], ["JFK", "HND"]] // current(현재위치): "ICN" // route(여행경로): ["ICN"] if (extra.length === 0) { routes.push(route); //잔여티켓 연산이 끝나면 routes로 정보전송 } //티켓 모두 사용 else { extra.forEach(([s, e], index) => { //s: 출발, e: 목적지 //index: 인덱스번호 ..
더보기
[프로그래머스]네트워크 javascript
그림을 안보고 문제를 풀려고 했어서 이해하는데 괜한 시간을 허비했다. 사실 알고보면 정말 간단한 문제인데... 입출력 예 n computers return(answer) 3 [[1, 1, 0], [1, 1, 0], [0, 0, 1]] 1 3 [[1, 1, 0], [1, 1, 1], [0, 1, 1]] 2 왜 이게 1개야, 이건 왜 2개야 로 한참 헤맸다. 그림 보자마자 아... 1개 맞네, 2개 맞네가 되었다. 풀이 우선 한번 지나간 길은 또 지나가지 말자는 차원에서 ch 배열을 만들었고, 모두 0(false)로 정했다. 그리고 맨 아래 for문으로 해당 영역이 지나간적 없는지 확인하고, DFS를 실행시킨다. DFS가 실행되면 해당 영역은 check 하고(1로 변환), 연결된 경로가 있는지 확인한다. 만..
더보기
[LeetCode]26. Remove Duplicates from Sorted Array
Input/Output Input Output 1,1,2 2 0,0,1,1,2,2,3,3,4 5 1차시도(성공) 성공이긴 했지만, 이중 for문을 썼더니 너무 런타임이 오래 걸렸다. 2차시도에는 다른 사람들이 푼걸로 숙지했다. var removeDuplicates = function(nums) { for(let i=nums.length-1;i>0;i--){ for(let j=i-1;j>=0;j--){ if(nums[i]===nums[j]){ nums.splice(j,1); } } } }; 2차시도 비교값이 같으면 중지하고 반복문의 처음으로 이동. 다르면 k값을 증가시키고 다른값을 복사, 값을 바꾸는 이유는 k값이 다음 비교를 위한 기준값이기 때문. var removeDuplicates = function..
더보기