프로그래머스[JS] > 택배 상자 꺼내기
·
🔒Algorithm
➕문제링크https://school.programmers.co.kr/learn/courses/30/lessons/389478 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🔨문제풀이상자가 쌓여있는 구조와 비슷한 2차원 배열을 만들어서 문제를 풀 수 있었다. ( 주어진 조건을 고려하면 2차원배열을 사용하여 순회를 하여도 시간초과가 나지 않을거라고 생각되었다. ) 예를들어 n=12 w=5 num=9 이면 아래와 같은 2차원배열을 만들어서 column index가 1인 2,9,12 를 순회화면서 값을 구할 수 있었다.function solution(n, w, num) { let map = []; ..
프로그래머스[JS] > 유연근무제
·
🔒Algorithm
➕문제https://school.programmers.co.kr/learn/courses/30/lessons/388351 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🔥풀이큰 어려움 없이 풀 수 있었다. 정한 시간의 +10 분까지 출근하면 되기 때문에 `schedules[i]` 에 +10 을 한뒤 60분을 넘어가면 시간을 +1 하는 변환과정을 거쳤다. function solution(schedules, timelogs, startday) { let answer = 0; for (let i = 0; i = 60) { goal += 100; goal -=..
프로그래머스[JS] > 완전범죄
·
🔒Algorithm
🧩문제링크https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🧩문제풀이➕dfs로 접근 -> 실패 ( 시간초과 )dfs로 푼 문제풀이다. 하지만 시간초과가 났다.function solution(info, n, m) { let dp = Array.from({ length: info.length + 1 }, () => { return Array(m).fill(Infinity); }); dp[0][0] = 0; for (let r = 1; r { if..
프로그래머스[JS] > 지게차와 크레인
·
🔒Algorithm
✅문제https://school.programmers.co.kr/learn/courses/30/lessons/388353 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🔥풀이문제를 풀 때 주의해야 할 사항이 몇가지 있는데 다음과 같다지게차로 컨테이너를 꺼낼 때 한번에 꺼내야 한다 -> 만약에 'A' 라는 출고 요청이 들어올 경우 아래와 같은 경우 맨 바깥에 있는 A만 꺼낼수 있다. 맨 바깥의 A를 꺼냈으니 빈공간이 생겼다고 가정하고 안쪽 A까지 꺼낸다고 가정 할 경우 답이 틀린다.크레인으로 꺼낸 빈공간으로 인해 지게차로 꺼낼 수 없는 컨테이너를 꺼낼 수 있으므로 지게차로 컨테이너를 꺼내기 전 반드시 크..
프로그래머[JS] > 서버 증설 횟수
·
🔒Algorithm
문제https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이시간대별로 현재 서버갯수를 파악할 수 있는 servers Array를 생성하고 시간대별 유저수를 탐색하면서 증설해야되는 서버가 필요 시 이를 servers에 추가하면서 증설횟수를 카운트 하여 답을 구할 수 있었다. function solution(players, m, k) { let servers = Array(24).fill(0); let answer = 0; players.forEach((playerCnt, sTime..
PCCP[JavaScript] Lv3 후기
·
➕Etc.
시험일시2024년 11월 17일 11시 ~ 오후 2시 (2시간)인증서후기PCCP lv1를 맞은 후 낙담하고 준비를 더한 뒤 시험을 치루고 lv3을 맞았다.1번 문제는 자료구조 및 구현, 2번 문제는 로직 및 2차원 배열, 3번 문제는 로직구현, 2차원배열, bfs등을 물어보는 문제 같았다. 4번은 문제를 풀다가 시간이 없어서 풀지 못했지만 시간만 주어졌다면 문제를 풀 수 있을 것 같아 아쉬었다.1번은 15~20분 2번은 35분? 3번은 45분? 정두에 풀었다. 내가 알기론 1,2,3,4 번 순서대로 배점이 200, 300, 300, 200 인걸로 알고 있는데 시험을 보고 680점?을 맞았다.1,2,3번을 모두 완벽하게 맞추었다면 800점이 나와 레벨 4가 나왔을 텐데 너무 아쉬었다. 더욱 더 아쉬운건 이..
프로그래머스[JS] > [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지
·
🔒Algorithm
🔥문제링크https://school.programmers.co.kr/learn/courses/30/lessons/340212 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔥풀이제한사항을 보면서 바로 이진탐색으로 접근하라는 냄새를 맡을 수 있었다. 이진탐색으로 접근 안한다면 괴랄할만큼의 연산 횟수가 필요하고 그럼 분명히 시간초과 이슈가 생기기 때문이다. 다행히 해당 접근이 맞았고 해결!function solution(diffs, times, limit) { let max = 100000, min = 1, mid = undefined le..
프로그래머스[JS] > [PCCP 기출문제] 3번 / 충돌위험 찾기
·
🔒Algorithm
🔥문제링크https://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔥풀이각 로봇들이 0초일때, 1초일때, 2초 일때 .. n 초 일때 위치를 arr에 담았다.예를들어 1번 로봇이 0 초일때 (1,1), 1초일때 (2,3), 2초일때 (3,3) 이라면 이를 [ [1,1], [2,3], [3,3] ] 로 기록하였다.그러면 총로봇갯수만큼의 arr가 생성되고 각 arr의 index가 같고 동일한 위치에 있을 때를 포착하여 충돌횟수를 증가 시켰다.  funct..
프로그래머스[JS] > 거스름돈
·
🔒Algorithm
🔥문제링크https://school.programmers.co.kr/learn/courses/30/lessons/12907 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔥첫번째 풀이 ( 테스트 케이스 모두 통과 but 시간초과 )처음에 내가 작성한 코드이다. ( 하단 참조 ) 이 코드는 테스트 케이스는 모두 통과지만 시간초과 테스트에서 모두 시간초과가 나왔다😭 다른사람들의 코드를 참고해보니 재귀가 아닌 dp ( dynamic programming : 최적화 ) 문제였던 것 같다.function solution(n, money) { let answ..
프로그래머스[JS] > 리코쳇 로봇
·
🔒Algorithm
코딩테스트 연습 > 연습문제 > 리코쳇 로봇 (JS) 문제풀이 🔥문제https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🔥풀이처음에 DFS로 문제풀이 접근을 했는데 여러케이스에서 시간초과로 문제풀이에 실패했다. 그래서 다른 사람의 풀이를 봤는데 BFS로 문제에 접근하고 있었고 내 생각에도 이 접근법이 시간이 월등히 적게 들꺼란 생각이 들어 BFS로 다시 문제풀이를 진행했다.  우리는 목표위치에 도달하기 위한 최소한의 미끄러짐 수를 구하기 때문에 ..