본문 바로가기

알고리즘169

[C++/PGS] Lv.3 : 연속 펄스 부분 수열의 합 https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3.cpp 배열 선언도 까먹어버려서 .. 큰일났다 ㅋㅋ다시 다 공부해야지 이 문제는 dp로 풀어야하는데, 아이디어 떠올리기기ㅏ 조금 힘들었다펄스 배열과 연속 부분수열을 보고 sliding window로 풀어야하나? 싶었는데풀다 보니 left를 옮길 조건이 없어서 이게 아닌가보다 싶었다.그래서 DP로 최댓값을 저장하면서 풀었다! 일차원 배열을 두개 쓰려다가, 더 효율적인 코드를 위해 이차원 배열로 바꾸었다.dp[][0] -> 펄.. 2025. 4. 15.
[C++/PGS] Lv.3 : 징검다리 건너기 https://school.programmers.co.kr/learn/courses/30/lessons/64062?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3.문제를 읽으면서 풀이 방법을 고민해봤는데, 뭔가 범위가 너무 커서 슬라이딩 윈도우나 이분탐색으로 푸는 것 같았다.그리고 예상이 맞았다!확실히 문제를 많이 풀수록 이제 어떻게 접근해야할지 눈에 보이는 것 같다. 🔥 중요 포인트1. 구해야 하는 값이 'k개 범위의 최댓값'의 최솟값이라는 사실을 깨닫기2. 그 값을 구하기 위해서, 각 범위의 최댓값을 보존하면서 윈도우를 움직여야 함.3. 그걸 위해서, De.. 2025. 4. 14.
[Javascript/PGS] Lv.2 : 연속 부분 수열 합의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.누적합, 투포인터...?와 중복제거 Set을 사용하면 간단함주의할 점은 원형 수열이기 때문에, 배열 2개를 붙여놓고 써야 한다.  나의 풀이function solution(elements) { var answer = 0; let aSet = new Set(); let left = 0; let right = 0; let len = elements.length; for(let i=0; i 2025. 4. 14.
[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(.. 2025. 4. 9.
[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 = .. 2025. 4. 8.
[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)=>{ .. 2025. 4. 7.
728x90
반응형