문자 개수 세기
문제
알파벳 대소문자로만 이루어진 문자열 my_string
이 주어질 때, my_string
에서 'A'의 개수, my_string
에서 'B'의 개수,..., my_string
에서 'Z'의 개수, my_string
에서 'a'의 개수, my_string
에서 'b'의 개수,..., my_string
에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요.
- 제한사항
- 1 ≤
my_string
의 길이 ≤ 1,000
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = '';
rl.on('line', (line) => {
input = line;
rl.close();
}).on('close', () => {
const answer = solution(input);
console.log(answer);
});
const solution = my_string => {
let alphabetArray = Array.from({ length: 52 }, () => 0);
const startCapitals = 'A'.codePointAt();
const endCapitals = 'Z'.codePointAt();
const startSmalls = 'a'.codePointAt();
const endSmalls = 'z'.codePointAt();
const array = my_string.split('');
array.map(item => {
if (item.codePointAt() >= startCapitals && item.codePointAt() <= endCapitals) {
alphabetArray[item.codePointAt() - startCapitals] += 1;
} else if (item.codePointAt() >= startSmalls && item.codePointAt() <= endSmalls) {
alphabetArray[item.codePointAt() - startSmalls + 26] += 1;
}
});
return alphabetArray;
};
배열 만들기 1
문제
정수 n
과 k
가 주어졌을 때, 1 이상 n
이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
- 제한사항
- 1 ≤
n
≤ 1,000,000 - 1 ≤
k
≤ min(1,000, n)
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = '';
rl.on('line', (line) => {
input = line.split(' ').map(Number);
rl.close();
}).on('close', () => {
const answer = solution(input[0], input[1]);
console.log(answer);
});
const solution = (n, k) => {
let array = [];
for (let i = k; i <= n; i += k) {
array.push(i);
}
return array;
};
글자 지우기
문제
문자열 my_string
과 정수 배열 indices
가 주어질 때, my_string
에서 indices
의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
- 제한사항
- 1 ≤
indices
의 길이 <my_string
의 길이 ≤ 100 my_string
은 영소문자로만 이루어져 있습니다- 0 ≤
indices
의 원소 <my_string
의 길이 indices
의 원소는 모두 서로 다릅니다.
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let my_string = '';
let n = 0;
let count = 0;
rl.on('line', (line) => {
if (count === 0) {
my_string = line;
} else {
n = line.split(' ').map(Number);
}
count++;
if (count > 1) {
rl.close();
}
}).on('close', () => {
const answer = solution(my_string, n);
console.log(answer);
});
const solution = (my_string, indices) => {
let answer = [...my_string];
let sortedIndices = indices.sort((a, b) => a - b);
console.log(sortedIndices);
for (let index in sortedIndices) {
answer.splice(sortedIndices[index] - index, 1);
}
return answer.join('');
};
카운트 다운
문제
정수 start_num
와 end_num
가 주어질 때, start_num
에서 end_num
까지 1씩 감소하는 수들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
- 제한사항
- 0 ≤
end_num
≤start_num
≤ 50
- 0 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = '';
rl.on('line', (line) => {
input = line.split(' ').map(Number);
rl.close();
}).on('close', () => {
const answer = solution(input[0], input[1]);
console.log(answer);
});
const solution = (start, end_num) => {
let array = [];
for (let i = start; i >=end_num; i--) {
array.push(i);
}
return array;
};
가까운 1 찾기
문제
정수 배열 arr
가 주어집니다. 이때 arr
의 원소는 1 또는 0입니다. 정수 idx
가 주어졌을 때, idx
보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.
단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.
- 제한사항
- 3 ≤
arr
의 길이 ≤ 100'000arr
의 원소는 전부 1 또는 0입니다.
- 3 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let idx = '';
let arr = [];
let count = 0;
rl.on('line', (line) => {
if (count === 0) {
arr = line.split(' ').map(Number);
} else {
idx = Number(line);
}
count++;
if (count > 1) {
rl.close();
}
}).on('close', () => {
const answer = solution(idx, arr);
console.log(answer);
});
const solution = (arr, idx) => {
return arr.indexOf(1, idx);
};
Ghost