본문 바로가기

CS/알고리즘

(38)
[230427] 과일 장수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1~k, 1점 bad, k점 good 사과 한 상자 가격: 가장 낮은 점수p * 사과개수m 풀이 첫 번째 풀이 (실패) function solution(k, m, score) { let answer = 0; score.sort((a, b) => b - a); while(score.length >= m) { const min = score[m - 1]; answer += min * m sco..
[230424] 프로세스 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 내 풀이 큐의 가장 큰 수 max 를 구한다. 큐에 하나만 남으면 return answer + 1 큐의 맨 앞을 뺀다(shift) (= process) process 가 max 와 동일하면, answer + 1 만약 location이 0이면(뺀 앞이라면) return answer max가 바뀌므로, max를 바꿔준다 process와 max이 동일하지 않다면, 큐에 process 를 뒤에 추가한다 (push) location 을 앞으로 당긴다. -1을 하는데, location === -1 이 된다면 ..
[230423] 소수 만들기 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 내 풀이 (실패) 삼중 for문에다가 전에 ‘소수 찾기’ 문제랑 동일하게 풀이했다. function solution(nums) { const answer = [2, 3, 5]; for(let i = 0; i < nums.length - 2; i++) { for(let j = i+1; j < nums.length - 1; j++) { for(let k = j+1; k < nums.length; k++) { const sum = nums[i] + nums[j] + nums[k] let flag = tr..
[230423] 연속 부분 수열 합의 개수 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 내 풀이 처음에 문제를 이해하는데 시간이 조금 걸렸다. linked list로, 끝과 앞이 연결된 형태라 생각하고 연속된 숫자의 합이 중복 없이 총 몇 가지가 나올 수 있는지 묻는 문제였다. 나는 slice를 이용해서 풀이했다. function solution(elements) { const answer = [...elements]; for(let i = 2; i elements.length) { sliceArr = elements.slice(j).concat(elements.slice(0, (i ..
[230423] 명예의 전당 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 내 풀이 function solution(k, score) { const answer = []; for(let i = 1; i b - a); answer.push(sortedScore[k - 1]) } } return answer } 배열 answer의 크기가 k만큼 찰 때까지, score를 0부터 i 만큼 자른 배열 요소 중 가장 작은 값을 answer에 넣는다. k보다 커지면, score를 자른 배열을 내림차순으로 정렬하고, 그 배열의 k-1 번째 인덱스에 해당하는 값을 answer에 넣는다. ..
[230422] 기능개발 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 첫 번째 풀이 간단하게 생각했음. function solution(progresses, speeds) { let answer = [1]; const arr = progresses.map((progress,i) => Math.ceil((100-progress) / speeds[i])); for(let i = 1; i < arr.length; i++) { if(arr[i] Math.ceil((100-progress) / speeds[i])); let max = arr[0]; for(let i = 1; ..
[230422] 소수 찾기 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 첫 번째 풀이 function solution(n) { let answer = 1; for(let i = 3; i
[230422] 추억 점수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 내 풀이 function solution(name, yearning, photo) { return photo.map(pho => pho.reduce((acc, cur) => { if(name.includes(cur)) return acc + yearning[name.indexOf(cur)]; return acc }, 0) ) } map과 reduce를 사용하여 풀이했다. 들어오는 이름..

반응형