Winnie The Pooh Bear 코딩테스트 입문

코딩테스트

코딩테스트 입문

코딩은 처음이라 2023. 5. 21. 22:45

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형

코딩테스트 입문

 

 

 

 

 

1. 각도기

문제 설명

각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.

  • 예각 : 0 < angle < 90
  • 직각 : angle = 90
  • 둔각 : 90 < angle < 180
  • 평각 : angle = 180

제한 사항

  • 0 < angle ≤ 180
  • angle은 정수입니다.

입출력 예

angle result
70 1
91 3
180 4

입출력 예 설명

  • angle이 70이므로 예각입니다. 따라서 1을 return합니다.
  • angle이 70이므로 예각입니다. 따라서 1을 return합니다.
  • angle이 180이므로 평각입니다. 따라서 4를 return합니다.

풀이

function solution(angle) {
    if(angle > 0 && angle <90){
        return 1;
    } else if(angle === 90){
        return 2;
    } else if(angle > 90 && angle < 180){
       return 3; 
    } else if(angle === 180){
        return 4;
    }
}

 

 

2. 짝수의 합

문제 설명

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.

제한사항

0 < n ≤ 1000

입출력 예

n result
10 30
4 6

입출력 예 설명

  • n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.
  • n이 4이므로 2 + 4 = 6을 return 합니다.

풀이

function solution(n) {
    var answer = 0;
    
    for(var i = 2; i<=n; i+=2){
        answer += i;
    }
    return answer;
}

n이하의 모든 짝수를 더해 그 값을 반환

반복문을 사용해 2부터 n까지 2씩 증가시키면서 짝수를 누적해 answer에 더함

 

3. 편지

문제 설명

머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • 공백도 하나의 문자로 취급합니다.
  • 1 ≤ message의 길이 ≤ 50
  • 편지지의 여백은 생각하지 않습니다.
  • message는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다.

입출력 예

massage result
"happy birthday!" 30
"l love you~" 22

입출력 예 설명

  • message의 글자 수가 15개로 최소 가로 30cm의 편지지가 필요합니다.
  • message의 글자 수가 11개로 최소 가로 22cm의 편지지가 필요합니다.

풀이

function solution(message) {
    var length = message.length;
    var width = length * 2
    return width;
}

massage의 길이를 구해 length 변수에 저장

width 변수에 length 의  두 배인 값을 할당

 이는 각 문자를 가로로 적기 위해 2cm 의 공간을 할당한다는 의미

whdth를 반환해 편지지의 최소 가로길이를 출력

 

4. 배열 자르기

문제 설명

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

제한사항

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

입출력 예

numbers num1 num2 result
[1,2,3,4,5] 1 3 [2,3,4]
[1,3,5] 1 2 [3,5]

입출력 예 설명

  • [1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다.
  • [1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다.

풀이

function solution(numbers, num1, num2) {
    return numbers.slice(num1, num2+1);
}

numbers 배열과 num1,num2 를 매개변수로 받고

함수 내부에서는 numbers 배열의 slice메서드를 사용해 num1번째 인덱스부터 num2 번째 인덱스까지의 부분 배열을 반환

 

출처

 

반응형