Algorithm study
-
Programmers
[Javascript/PGS] Lv.2 : 예상 대진표
https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨2처음에는 이진탐색,,,? 으로 풀어야 하나 싶었는데훨씬 간단한 방법이 있었다.2명씩 경기를 진행하므로, 그냥 계속 2로 나누기만 하면 언젠가 만난다는 것 나의 풀이function solution(n,a,b){ var answer = 0; // 1,2 -> 1 / 3,4->2 / 5,6->3 / ... while(a!==b){ a = Math.ceil(a/2); b = Math.ceil(..
-
Programmers
[Javascript/PGS] Lv.2 : N개의 최소공배수
https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.여러 수의 최소공배수를 구하는 문제이고, 반복문을 사용해서 2개씩 구하면 된다 일반적으로 사용하는 변수/함수명- 최대공약수 = gcd- 최소공배수 = lcm 최소공배수 구할 땐 [ a*b/gcd ] !!!!gcd 함수에서 b로 계속 나눈 나머지를 구하면서, b가 0일때의 a값이 최소공약수가 된다. 나의 풀이function gcd(a, b){ while(b>0){ let tmp = b; b = ..
-
Programmers
[Javascript/PGS] Lv.2 : 귤 고르기
https://school.programmers.co.kr/learn/courses/30/lessons/138476# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.종류 갯수를 카운팅할 때 신경써야할 부분(경우)이 좀 있고,sort도 신경써줘야 한다 ㅋ.....ㅋ JS의 sort()는 문자열 기준이기 때문에, 숫자를 제대로 비교하고 정렬하려면 반드시 비교 함수를 넣어줘야 한다!!! 나의 풀이function solution(k, tangerine) { var answer = 0; let tmap = new Map(); tangerine.forEach((t)=>{ ..
-
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 ..