728x90
1. 최소직사각형 - lv1
https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=javascript
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. 더 긴 쪽이 가로가 되도록 회전한다.
2. 가로 길이 중 최댓값과 세로 길이 중 최댓값을 구하여 두 값의 곱을 리턴한다.
function solution(sizes) {
var w = 0;
var h = 0;
sizes.forEach(x => {
w = Math.max(Math.max(x[0], x[1]), w)
h = Math.max(Math.min(x[0], x[1]), h)
})
return w*h;
}
2. 완전탐색 - lv.2
https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=javascript
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 각 수포자의 [패턴 배열, 점수, 수포자 번호]를 담은 2차원 배열을 생성한다.
- 수포자의 패턴을 순환하며 answers[i]와 비교한다. 정답이면 점수를 증가시킨다.
- 배열을 점수를 기준으로 내림차순 정렬한다.
- 최고 점수인 사람만 필터링하고 수포자 번호만 반환한다.
function solution(answers) {
const arr = [
[[1, 2, 3, 4, 5], 0, 1],
[[2, 1, 2, 3, 2, 4, 2, 5], 0, 2],
[[3, 3, 1, 1, 2, 2, 4, 4, 5, 5], 0, 3]
];
for (let i = 0; i<answers.length; i++) {
if (answers[i] === arr[0][0][i % arr[0][0].length]) arr[0][1]++;
if (answers[i] === arr[1][0][i % arr[1][0].length]) arr[1][1]++;
if (answers[i] === arr[2][0][i % arr[2][0].length]) arr[2][1]++;
}
arr.sort((a, b) => b[1] - a[1]);
return arr.filter(x => x[1] === arr[0][1]).map(x => x[2]);
}
728x90
'코딩테스트 > 프로그래머스-JS' 카테고리의 다른 글
[프로그래머스/자바스크립트] 해시 문제 풀이 모음 (0) | 2025.03.09 |
---|---|
[프로그래머스/자바스크립트] 정렬 문제 풀이 모음 (0) | 2025.03.04 |
[프로그래머스/자바스크립트] 스택/큐 문제 풀이 모음 (0) | 2025.03.04 |