Algorithm study
-
Programmers
[Javascript/PGS] Lv.3 : 기지국 설치
https://school.programmers.co.kr/learn/courses/30/lessons/12979?language=javascript# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 레벨 3 문제.예전에 c++로 풀다가 해결 못했던 문제인데, 오늘 js로는 해결했다그래도 사고력이 좀 늘었나..^^ 약간 성장한 듯 특별한 알고리즘을 쓰는 문제는 아니지만, 신경써야 할 부분이 은근히 많다. 메인 힌트는 n의 범위이다. (매우 크기 때문에 stations를 활용해야 한다)주의할 점은 중간에 빈 구간 구할 시, 음수나 0이 나오는 경우를 예외처리해줘야 한다는 것!!! 근데 제출하니..
-
Programmers
[Javascript/PGS] Lv.3 : 아이템 줍기(BFS)
https://school.programmers.co.kr/learn/courses/30/lessons/87694 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 레벨 3 문제이다처음에 일부 테케가 계속 틀려서 삽질했었는데알고보니 map 변수를 채우는 게 문제였다.... (이거 하나때문에 몇 시간을 앓음) js에서는 배열 값을 직접 바꿀때 중복이 되면 뭔가 오류가 생기나보다중복, 덮어쓰기 최대한 없도록 짜기! Main Idea => 맵을 두 배로 늘려서, ㄷ자로 우회해야하는데 직행하게 되는 부분이 없도록 함그리고 최단거리를 찾는 문제이니, BFS로 푼다! 나의 풀이let dx = [0, 1..
-
Programmers
[Javascript/PGS] Lv.2 : 조이스틱 (Greedy) 🎮🔥
https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=javascript# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2근데 꽤 어려웠다 ㅠㅠ 꼭 탐욕법으로 풀지 않아도 되는 것 같았다이정도 난이도면 레벨3 아니냐고,,1. 첫번째 풀이 : 74.1점 😵반례 : "BBBBAAAAAAB"기댓값 10, 결과값 12 function solution(Name) { let name = Name.split(''); let answer = 0; console.log('A'.charCodeAt(),'Z'...
-
Programmers
[Javascript/PGS] Lv.0 : 다음에 올 숫자 (입문 100제 마스터!🔥)
https://school.programmers.co.kr/learn/courses/30/lessons/120924 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 코테 - 프로그래밍 입문(레벨 0) 마지막 문제!의외로 놓치기 쉬운 부분이 많다. 주의점1. 0으로 나눌 수 없음 - 등비수열에는 0이 등장하지 X.2. 나눗셈 값 비교 시, 그대로 비교 후 같을 때만 Math.floor 적용시켜주기 나의 풀이function solution(common) { let answer = 0; if(!common.includes(0)){ let multi1 = common[1]/c..
-
Programmers
[Javascript/PGS] Lv.0 : 이진수 더하기
https://school.programmers.co.kr/learn/courses/30/lessons/120885# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 코딩테스트 입문 문제 로직 순서1. 길이 비교 후 짧은 수의 앞부분에 0 채워넣기2. 끝부분부터 비교, 변수 plus를 이용한 반올림 - 이 때, plus는 항상 0 혹은 1 - 둘다 1일 때, 둘다 0일 때, 그리고 각각 0과 1일 때를 나누어 생각 나의 풀이function solution(bin1, bin2) { let answer = ''; if(bin1.length !== bin2.length){ ..
-
Programmers
[Javascript/PGS] Lv.0 : 치킨 쿠폰
https://school.programmers.co.kr/learn/courses/30/lessons/120884 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 코딩테스트 입문 문제 중 하나.10으로 나눈 뒤 남은 쿠폰 수를 고려해야 해서 생각보다 헷갈렸다,,! function solution(chicken) { let coupons = chicken; let answer = 0; while(1){ answer += Math.floor(coupons/10); coupons = Math.floor(coupons/10) + (coupons%10); ..