Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 데이터베이스
- 자바
- 코드테스트
- 미니정리
- JavaScript
- 서버
- 스프링부트
- 자바스크립트
- web
- MySQL
- 쿼리
- oracle
- 프론트엔드
- 백엔드
- 프런트엔드
- 프로그래머스
- 코드 테스트
- java
- BACK-END
- 스프링
- jpa
- jsp
- 디자인 패턴
- spring
- 알고리즘
- SQL
- 정리
- 오라클
- Next.js
- node.js
Archives
- Today
- Total
참치코더의 꿈 메모장
Javascript / 프로그래머스 - 구명보트(탐욕법) 본문
728x90
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function solution(people, limit){
people.sort((a, b) => a - b) // 오름차순 정렬 (a, b) => b - a 내림 차순 정렬
let left = 0; // 가장 가벼운 사람
let right = people.length - 1; // 가장 무거운 사람
let boat = 0;
while (left <= right){
if (people[left] + people[right] <= limit){
left++; // 같이 태움
}
right--; // 무거운 사람은 항상 태움
boat++;
}
return boat;
}
|
cs |
- 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해
필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성하는 문제이다.
- 일단 people 배열을 오름차순으로 정렬한다면, 1,2,3,4 형식으로 몸무게가 나열되게 되고, 그중 while 조건을 걸어서
가장 끝에있는 가장 무거운 사람과 가장 앞에 있는 가벼운 사람을 limit 값과 비교해서 만약에 몸무게가 그보다
작다면, 같이 태워서 보낼수 있다. 반대로 무겁다면 혼자 출발해야 하므로, 꼭 무거운 사람은 1번은 보내야 한다.
- 이렇게 반복한다면 최소의 보트 운행으로 모든 사람을 보낼수 있고, 그 값을 더한 boat의 수를 return 한다면 값을
얻을 수 있다. ^^

728x90
'Javascript' 카테고리의 다른 글
| Javascript / 프로그래머스 - 귤 고르기 (0) | 2026.02.19 |
|---|---|
| Javascript / 프로그래머스 - 피보나치 수 (0) | 2026.02.16 |
| Javascript / 비동기 정리 및 Promise, async, await 비교 (0) | 2025.10.28 |
| Javascript / 리덕스(Redux) - 개념 미니 정리 (0) | 2025.09.09 |
| 자바스크립트 동기 함수 / 비동기 함수 비교 및 과정 (1) | 2025.04.24 |
Comments