티스토리 뷰
2022.11.25
프로그래머스 스쿨 Lv01. 푸드 파이트 대회
🚀 문제 파악
* 대회는 1대1로 대결
* 대결마다 음식의 종류와 양 변경
* 대결 진행 방식
** 음식 일렬 배치하고, 중앙에는 물 배치
** 양 쪽 끝에서부터 음식 섭취 시작
** 물을 먼저 먹은 선수가 승리
* 대회 공정성을 위해 음식의 종류 양 동일하게
* 칼로리가 낮은 음식을 선 배치
* 대회에 사용하지 않는 음식도 존재
*[참고] food 배열은칼로리가 낮은 순으로 정렬되어 있다
* (예) 3가지의 음식이 준비(칼로리순으로 번호 부여)
** 1번음식: 3개 / 2번음식: 4개 / 3번음식: 6개 / 0번음식: 1개(물)
** 순서 배치: 1223330333221
🚀 문제 해결
1. food[0] 은 물에 해당한다
2. food[0]을 제외한 배열의 값을 모두 2로 나눈다.
* 2로 나눈 몫만큼 left 배열에 push한다.
3. left배열을 구한 다음, reverse()해 right 배열을 구한다
4. join()을 사용해 배열 left, 0, 배열 right 순으로 String을 만든다
🚀 통과 코드
function solution(food) {
// 필요한 변수 선언
var answer = '';
var [left, right] = [[], []];
// left 배열 구하기
for(var i = 1; i < food.length; i++){
var cnt = parseInt(food[i]/2);
for(var j = 0; j<cnt; j++){
left.push(i);
}
}
right = left.slice().reverse(); // left 배열을 복사한 후, reverse()
var res = [ ...left, 0, ...right]; // left, 0, right를 하나의 배열로 만들기
answer = res.join('');
return answer;
}
'🔥 해보자고 🔥' 카테고리의 다른 글
프로그래머스 스쿨 Lv01. 성격유형검사하기 (0) | 2022.11.30 |
---|---|
프로그래머스 스쿨 Lv01. 햄버거 만들기 (0) | 2022.11.29 |
프로그래머스 스쿨 Lv01. 명예의 전당(1) (0) | 2022.11.28 |
프로그래머스 스쿨 Lv01. 과일 장수 (0) | 2022.11.24 |
프로그래머스 스쿨 Lv01. 기사단원의 무기 (0) | 2022.11.23 |
댓글