“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
코딩테스트 입문
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 번째 인덱스까지의 부분 배열을 반환