[프로그래머스/js] 다리를 지나는 트럭 (Lv. 2)
·
공부/코딩테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/42583 문제 리뷰지문을 읽으면서 트럭이 다리를 지나는 모습을 상상하게 되는 문제였습니다. 그래서 이 상상대로 구현이 될 것 같은 느낌이 왔는데요.. 문제를 풀면서 이런 그림을 그린 것은 아니고요지금 게시글로 쓰면서 그려보았습니다. 재밌네요 (ㅋ) 코드를 보시면와 진짜 그림대로 구현했네..라고 생각하시게 될 것 같습니다. 첫 번째 시도 (정답)codefunction solution(bridge_length, weight, truck_weights) { let bridge = new Array(bridge_length).fill(null); let bridgeWeightSum = 0; ..
[프로그래머스/js] 네트워크 (Lv. 3)
·
공부/코딩테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/43162 문제 리뷰Lv. 3 문제를 블로그에 포스팅하는게 이번이 처음이네요. ^^ 기념적인 게시글 입니다. ㅋ 저는 문제 설명에 이렇게 생긴 그림이 있으면,일단 graph로 만들어 버리고 싶은 충동이 듭니다.graph로 만들어서 bfs든 dfs든 탐색하면 좋겠다는 생각이 마구 듭니다.탐색하면서 문제 조건에 따라 이것저것 처리하고 정답을 return 하면 되겠다는 계획도 세우게 됩니다. 많은 분들께서 공감하실텐데요. (ㅋ?) 대략적인 설계는 위 이미지에서 확인하실 수 있습니다.ㄴ 네?ㄴ 뭘 어떻게 확인할 수 있는 건데요? (코드로 확인해 봅시다) 첫 번째 시도 (정답)codefunction solu..
[프로그래머스/js] 게임 맵 최단거리 (Lv. 2)
·
공부/코딩테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/1844?language=javascript 문제 리뷰오늘은 재미있는 '델타 탐색' 문제를 찾아왔습니다. ㅋ 자바로는 한 번 풀어봤던 문제인데요..재미있는 js로도 풀어보기 위해 오랜만에 다시 건드렸습니다. 델타 탐색 문제가 뭐냐?2차원 배열에서, 어떤 기준 값으로부터 상·하·좌·우 방향으로 한 칸 씩 미리 확인해보면서 탐색해야 하는 문제를 말합니다. 아주 상하좌우로 탐색해보고 싶은 그림이라는 게 보이실 겁니다. ( 첫 번째 시도 (정답)codeconst delta = [[1, 0], [0, 1], [-1, 0], [0, -1]];function solution(maps) { let queue..
[프로그래머스/js] 캐시 (Lv. 2)
·
공부/코딩테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/17680 문제 리뷰훗.조건을 보고, 이 문제는 어떻게 풀면 좋을 지 잘 상상할 수 있었습니다. Least Recently Used 라는 즉슨?최근에 사용된 데이터들을 우선적으로 캐시에 남겨두겠다는 말일텐데요. 저는 이 부분을 보고 "cache를 Queue로 구현해야겠다"고 마음 먹었습니다. 다만,일반적인 Queue 처럼 선입선출을 계속하면 되는 게 아니라,최근에 사용된 데이터는 캐시의 가장 안전한 구석으로(tail에 가깝게) 밀려나게 만들어 줄 필요가 있었습니다. 아래 코드에서 Queue 클래스의 update() 메서드에 구현한 내용입니다. 첫 번째 시도 (정답)codeconst HIT_TIME ..
[프로그래머스/js] 소수 찾기 (Lv. 2)
·
공부/코딩테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/42839문제 리뷰저는 이런 생각을 했습니다. numbers로 가능한 모든 숫자의 순열을 구하고구해진 순열들에 대해 하나씩 소수인지 아닌지 따져보게 하자!! 제한사항도 널널하고 착하네요 ^^// 이 계획은 완벽합니다. (ㅋ) 첫 번째 시도 (정답)codefunction solution(numbers) { let nums = [...numbers].map(Number); let allPermutations = []; for (let i = numbers.length; i > 0; i--) { const noDupPermutations = getPermutations..
[프로그래머스/js] 괄호 회전하기 (Lv. 2)
·
카테고리 없음
문제https://school.programmers.co.kr/learn/courses/30/lessons/76502 문제 리뷰우리는 '괄호' 하면 가장 먼저 떠오르는 것이 있습니다.Stack의 기본 예제로 나오는 착한 문제죠.. 이번 문제에서도 역시, Stack을 이용하는 방식으로 풀이해 보았는데요,하다 보니 이것 저것 해보고 싶어서 로직에 수정을 거쳤습니다. 첫 번째 시도 (정답) - if문 (Time: 231.19 ms, Memory: 38.2 MB)codefunction solution(s) { let answer = 0; let stack = []; for (let i = 0; i 0) { const target = sCopy.shift(); ..