Algorithm study
-
Programmers
[Javascript/PGS] Lv.2 : 영어 끝말잇기
https://school.programmers.co.kr/learn/courses/30/lessons/12981# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨2.나눗셈, 나머지 연산을 잘 고려해서 적절한 식을 설계해야 한다! 나의 풀이function solution(n, words) { var answer = []; let wordset = new Set(); let wordsize = 0; wordset.add(words[0]); let lastword = words[0][words[0].length-1]; for(let i=1; i
-
Programmers
[Javascript/PGS] Lv.2 : 짝지어 제거하기
https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.그냥 반복문 + substr로 풀었는데, 효율성에서 너무 오래걸림. 아 뭔가 문제가 있다! 라고 판단해서방법을 생각해봤는데스택으로 푸는게 최고의 방법인 것 같았다.substr은 각각 O(N)이지만, push/pop은 각각 O(1)이므로 결국 문자열이 아니라 배열로 해결하는게 맞았다 ^-^ 나의 풀이function solution(s){ var answer = 0; if(s.length
-
Programmers
[Javascript/PGS] Lv.2 : 점프와 순간 이동
https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 레벨2. Summer/Winter Coding(~2018)DP인 줄 알았는데, 2로 나누어주면서 2의 배수가 아닐때만 카운트를 해주면 되는거였다.때로는(아주 가끔씩은) 단순한게 답이다...! 나의 풀이function solution(n){ var ans = 0; // 5 -> (+1), 4/2=2, 1/1=1 (+1) -> 2 while(n>1){ if(n%2===0) n/=2; else ..
-
Programmers
[Javascript/PGS] Lv.2 : 석유 시추 (PCCP 기출문제 2번)
https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.BFS 응용 문제이다너비우선탐색으로 석유칸 수를 카운트하고, 어떤 열에서 뽑을 수 있는건지 Map에 누적한다!코드가 길긴 했지만 크게 어려운 문제는 아니었다고 생각🤓 나의 풀이let Land;let n; let m;let visited;let dx = [0,1,0,-1];let dy = [-1,0,1,0];let columnMap = new Map();const saveColumns=(columns, count)=>{ ..
-
Programmers
[Javascript/PGS] Lv.2 : 퍼즐 게임 챌린지 (PCCP 기출문제 2번)
https://school.programmers.co.kr/learn/courses/30/lessons/340212# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨2.정답률 42%인 PCCP 기출이다다음 달에 PCCP 도전해볼까 해서 기출을 풀어보았다! 처음에 limit 범위가 너무 크길래, 이거 설마 이분탐색...?! 이러면서 풀었는데역시나 이진 탐색 유형의 문제가 맞았다.자주 푸니까 슬슬 문제 유형이 눈에 보이는듯 😇 while 종료 조건, left / right 갱신, answer 갱신 등 신경써야할 부분이 많았다!!! 특히 난이도, 소요 시간은 모두 양의 정수며, 숙련도도 양의..
-
Programmers
[Javascript/PGS] Lv.3 : 여행경로
https://school.programmers.co.kr/learn/courses/30/lessons/43164?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨3DFS 유형 문제이고, 예전에 CPP로 풀었는데 js로 다시 풀어보았다. 한 경로로 끝까지 탐색해야하므로 깊이우선 탐색을 진행,만약 끝까지 진행하지 못한다면 백트래킹이 필요하다!(pop & visited false 처리) 나의 풀이let answer = [];let isAnswer = false;let visited = new Array(10001).fill(false);let Tickets..