홀수 vs 짝수
문제
정수 리스트 num_list
가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.
- 제한사항
- 5 ≤
num_list
의 길이 ≤ 50 - 9 ≤
num_list
의 원소 ≤ 9
- 5 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let num_list = [];
rl.on('line', (line) => {
num_list = line.split(' ').map(Number);
rl.close();
}).on('close', () => {
const answer = solution(num_list);
console.log(answer);
});
const solution = num_list => {
let odd = 0;
let even = 0;
for (let i = 0; i < num_list.length; i++) {
if (i % 2 === 0) {
even += num_list[i];
} else {
odd += num_list[i];
}
}
return even > odd ? even : odd;
};
5명씩
문제
최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names
가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.
- 제한사항
- 5 ≤
names
의 길이 ≤ 30 - 1 ≤
names
의 원소의 길이 ≤ 10 names
의 원소는 영어 알파벳 소문자로만 이루어져 있습니다.
- 5 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let names = [];
rl.on('line', (line) => {
names = line.split(' ').map(Number);
rl.close();
}).on('close', () => {
const answer = solution(names);
console.log(answer);
});
const solution = names => {
let answer = [];
for (let i = 0; i < names.length; i += 5) {
answer.push(names[i]);
}
return answer;
};
할 일 목록
문제
오늘 해야 할 일이 담긴 문자열 배열 todo_list
와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished
가 매개변수로 주어질 때, todo_list
에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
- 제한사항
- 1 ≤
todo_list
의 길이 1 ≤ 100 - 2 ≤
todo_list
의 원소의 길이 ≤ 20todo_list
의 원소는 영소문자로만 이루어져 있습니다.todo_list
의 원소는 모두 서로 다릅니다.
finished[i]
는 true 또는 false이고 true는todo_list[i]
를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다.- 아직 마치지 못한 일이 적어도 하나 있습니다.
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let todo_list = [];
let finished = [];
let count = 0;
rl.on('line', (line) => {
if (count === 0) {
todo_list = line.split(' ');
} else {
finished = line.split(' ').map(Number).map(item => item === 1);
}
count++;
if (count > 1) {
rl.close();
}
}).on('close', () => {
const answer = solution(todo_list, finished);
console.log(answer);
});
const solution = (todo_list, finished) => {
let answer = [];
for (let i = 0; i < todo_list.length; i++) {
if (!finished[i]) {
answer.push(todo_list[i]);
}
}
return answer;
};
n보다 커질 때까지 더하기
문제
정수 배열 numbers
와 정수 n
이 매개변수로 주어집니다. numbers
의 원소를 앞에서부터 하나씩 더하다가 그 합이 n
보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.
- 제한사항
- 1 ≤
numbers
의 길이 ≤ 100 - 1 ≤
numbers
의 원소 ≤ 100 - 0 ≤ n <
numbers
의 모든 원소의 합
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let todo_list = [];
let finished = [];
let count = 0;
rl.on('line', (line) => {
if (count === 0) {
todo_list = line.split(' ');
} else {
finished = line.split(' ').map(Number).map(item => item === 1);
}
count++;
if (count > 1) {
rl.close();
}
}).on('close', () => {
const answer = solution(todo_list, finished);
console.log(answer);
});
const solution = (todo_list, finished) => {
let answer = [];
for (let i = 0; i < todo_list.length; i++) {
if (!finished[i]) {
answer.push(todo_list[i]);
}
}
return answer;
};
수열과 구간 쿼리 1
문제
정수 배열 numbers
와 정수 n
이 매개변수로 주어집니다. numbers
의 원소를 앞에서부터 하나씩 더하다가 그 합이 n
보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.
- 제한사항
- 1 ≤
arr
의 길이 ≤ 1,000- 0 ≤
arr
의 원소 ≤ 1,000,000
- 0 ≤
- 1 ≤
queries
의 길이 ≤ 1,000- 0 ≤
s
≤e
<arr
의 길이
- 0 ≤
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = '';
let queries = '';
let count = 0;
rl.on('line', (line) => {
if (count === 0) {
input = line.split(' ').map(Number);
} else {
queries = line.split(' ');
queries = queries.map(item => {
return item.split(',').map(Number);
});
}
count++;
if (count > 1) {
rl.close();
}
}).on('close', () => {
const answer = solution(input, queries);
console.log(answer);
});
const solution = (arr, queries) => {
let answer = arr;
for (let i = 0; i < queries.length; i++) {
for (let j = queries[i][0]; j <= queries[i][1]; j++) {
answer[j] += 1;
}
}
return answer;
};
Ghost