본문 바로가기

자바스크립트36

[Javascript/PGS] Lv.2 : [1차] 캐시 (2018 KAKAO) https://school.programmers.co.kr/learn/courses/30/lessons/17680프로그래머스 레벨 2.캐시 저장공간을 구현하는 단순 구현 문제이다. 캐시 교체 알고리즘은 LRU(Least Recently Used)이므로, 최근 사용했던 순위를 기억해주어야 한다.따라서, 캐시 배열에 가장 최근 사용한 것은 1로,나머지 것들은 해당 위치의 값에 1씩 더해주었다. 주의할 점은 대소문자 구분을 없애야 한다는 것! 나의 경우는 js라서 toLowerCase 함수를 사용했다. 나의 풀이function solution(cacheSize, cities) { var answer = 0; let cache = new Array(cacheSize).fill(["",0]); .. 2025. 5. 14.
[Javascript/PGS] Lv.3 : 표 편집 (연결리스트) https://school.programmers.co.kr/learn/courses/30/lessons/81303# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3. 정답률 40% 첫 시도에서 Map을 활용하여 풀었다.그런데 효율성 실패..!ㅠㅠ단순 구현이 아니라, 연결 리스트 형식으로 풀어야 하는 문제였다 🤯 그래서 next, prev 배열에 각각 다음/이전 위치를 저장해주며 연결 관계를 나타냈다.이건 실제 연결리스트 기법은 아니고, 배열로 작동 방식을 모방한 것이다!실제로 연결리스트를 사용하려면, 아래와 같이 포인터를 가지는 노드 클래스를 선언하고 쓰면 된다class Node .. 2025. 5. 14.
[Javascript/PGS] Lv.2 : 행렬의 곱셈 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨2.행렬곱 구현 문제정답률도 67%이고 개념을 알아도 은근히 헷갈려서 풀어보면 좋은 문제인 듯 하다 나의 풀이function solution(arr1, arr2) { var answer = []; let a1 = arr1.length; let a2 = arr1[0].length; let b1 = arr2.length; let b2 = arr2[0].length; for(let i=0; i 2025. 5. 13.
[Javascript/PGS] Lv.3 : 인사고과 https://school.programmers.co.kr/learn/courses/30/lessons/152995# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3. js정답률이 40%대인 만큼 꽤나 어려웠던 구현 문제 단순히 이중반복문으로 비교해서 탈락자를 처리해도 되지만, 범위가 커서 시간초과가 날 것이다...그래서 적절하게 scores를 정렬하고(a는 내림차순, b는 오름차순),각 인덱스 요소의 b가 max_b보다 작으면 이 친구보다 더 큰 값이 항상 있다는 뜻이므로 0으로 초기화해준다. 그리고 배열을 만들어서, "scoreIndex[점수의 합 sum] = 점수 합이 sum인 .. 2025. 5. 9.
[Javascript/PGS] Lv.3 : 풍선 터트리기 https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3. 규칙을 찾아서 적용시켜야 한다난 이런 수학/패턴 유형이 좀 새롭게 느껴져서 어려운 것 같다...🥹그래서 힌트 참고했다 ㅎㅎ 내가 참고한 글은시간초과 걱정 없는 풀이 방법이다.단 한번만 작은 풍선을 터트릴 수 있다는 점에서, 이 기회를 마지막으로 남겨두고맨 마지막에 2개가 남았을 때 작은 풍선을 터트리거나, 이 기회를 버리고 큰 풍선을 터트리면 된다.그러려면, 마지막 이전에는 항상 큰 수가 사라져야 한다(작은 수만 살아남음.. 2025. 5. 9.
[Javascript/PGS] Lv.3 : 다단계 칫솔 판매 https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨3해시맵 구현 문제.본인의 이득은 90%이고, 부모에게 10%를 넘겨주면 되는데이 때 무작정 0.9와 0.1을 곱하면 안되고, 10%를 구한 뒤 그 차를 이용해야 한다.!! (자식 몫 = 돈 - 돈*10%)반올림/내림이 일어나면서 수가 바뀌기 때문에..주의하기 ㅎㅎ 처음에 제출했을 때, 테케 11번 ~ 13번이 시간초과가 걸려서 뭐지? 싶었는데while문에서 종료 조건을 하나 더 추가해주니 통과되었다! 처음에는 최상위 부모에 다다.. 2025. 5. 8.
728x90
반응형