2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Lv0 JS 프로그래머스 #6 -배열 자르기, 최댓값 만들기, 피자 나눠 먹기(3)

2023. 8. 8. 20:02ㆍ프로그래머스 JS 코딩테스트
반응형

19. 배열 자르기

문제 설명

  • 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 2 ≤ numbers의 길이 ≤ 30
  • 0 ≤ numbers의 원소 ≤ 1,000
  • 0 ≤num1 < num2 < numbers의 길이

입출력 예시

  • 두 수의 곱중 최댓값은 4 * 5 = 20 입니다.
  • 두 수의 곱중 최댓값은 31 * 24 = 744 입니다.

풀이

const solution = (numbers, num1, num2) => {
    return numbers.slice(num1, num2+1); // slice는 배열을 자르는 메서드
}

` slice 메서드는 시작 인덱스는 포함, 종료 인덱스는 미포함한다. `

 

20. 최댓값 만들기

문제 설명

  • 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 0 ≤ numbers의 원소 ≤ 10,000
  • 2 ≤ numbers의 길이 ≤ 100

입출력 예시

  • 두 수의 곱중 최댓값은 4 * 5 = 20 입니다.
  • 두 수의 곱중 최댓값은 31 * 24 = 744 입니다.

풀이

const solution = numbers => {
	return numbers.sort((a,b) => b-a); // sort는 배열 정렬 메서드
}
` a, b 두 인수의 식을 이용한 정렬 `
// 음수 값 : 첫 번째 인수 < 두 번째 인수, 첫 번째 인수가 앞에 위치
// 0 : 두 인수가 같다
// 양수 값 : 첫 번째 인수 > 두 번째 인수, 첫 번째 인수가 뒤에 위치


// 메서드를 이용하지 않은 식
const solution = numbers => {
    let maxValue = 0
    let maxValue2 = 0
    for(const num of numbers){
        if(num > maxValue){
            maxValue2 = maxValue;
            maxValue = num;
        }
        else if(num > maxValue2){
            maxValue2 = num
        }
    }
    return maxValue * maxValue2
}

 

21. 피자 나눠 먹기 (3)

문제 설명

  • 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 2 ≤ slice ≤ 10
  • 1 ≤ n ≤ 100

입출력 예시

  • 10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다.
  • 12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다.

풀이

const solution = (slice, n) => {
    return Math.ceil(n / slice) // Math.ceil은 올림 메서드
}

 

  • 정답률 높은 순부터 풀이
  • 매일 3문항 풀이
반응형