“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
문자열 뒤집기
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
var answer = '';
answer = my_string.split('').reverse().join('');
return answer;
}
주어진 문자열 my_string을 거꾸로 뒤집어서 반환하는 함수인 solution을 구현한 것입니다. 아래는 코드의 동작 설명입니다.
var answer = '';: 결과를 저장할 빈 문자열 answer를 선언합니다.
answer = my_string.split('').reverse().join('');:
my_string.split(''): my_string을 각각의 문자로 분할하여 배열로 만듭니다. 예를 들어, 입력으로 "Hello"라는 문자열이 주어졌다면 ['H', 'e', 'l', 'l', 'o']와 같은 배열이 생성됩니다.
.reverse(): 배열의 순서를 뒤집습니다. 위의 예시 배열은 .reverse()를 적용하면 ['o', 'l', 'l', 'e', 'H']와 같이 됩니다.
.join(''): 배열의 각 요소를 하나의 문자열로 결합합니다. 위의 예시 배열은 .join('')을 적용하면 "olleH"라는 문자열이 됩니다. 이 문자열이 answer에 할당됩니다.
return answer;: 최종적으로 거꾸로 뒤집힌 문자열인 answer를 반환합니다.
직각삼각형 출력하기
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
const num = Number(input[0]);
let logStr = ''
for(let i = 0 ; i < num; i++) {
for(let j = 0 ; j <= i; j++) {
logStr+='*'
}
logStr+='\n'
}
console.log(logStr)
});
const readline = require('readline');: readline 모듈을 사용하기 위해 require 함수를 사용하여 모듈을 불러옵니다.
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });:
readline 모듈의 createInterface 함수를 호출하여 입력과 출력을 담당하는 rl 인터페이스 객체를 생성합니다. 입력은 표준 입력(process.stdin)으로 설정하고, 출력은 표준 출력(process.stdout)으로 설정합니다.
let input = [];: 입력값을 저장할 빈 배열 input을 선언합니다.
rl.on('line', function (line) { input = line.split(' '); }): 한 줄씩 입력을 받을 때마다 실행되는 이벤트 핸들러를 등록합니다.
line은 입력된 한 줄의 문자열을 나타냅니다.
line.split(' '): 입력된 문자열을 공백을 기준으로 분할하여 배열로 만듭니다.
input = line.split(' ');: 분할된 배열을 input에 할당합니다.
.on('close', function () { ... }): 입력의 끝을 나타내는 이벤트 핸들러를 등록합니다. 입력이 종료되면 실행됩니다.
const num = Number(input[0]);: 분할된 입력 배열의 첫 번째 요소를 정수형으로 변환하여 num에 할당합니다.
let logStr = '': 결과를 저장할 빈 문자열 logStr을 선언합니다.
for(let i = 0 ; i < num; i++) { ... }: 0부터 num-1까지 반복하는 반복문을 실행합니다. i는 현재 줄의 번호를 나타냅니다.
for(let j = 0 ; j <= i; j++) { logStr+='*' }: 0부터 i까지 반복하는 반복문을 실행합니다. j는 현재 줄에서 출력할 *의 개수를 나타냅니다. 각 줄마다 *을 logStr에 추가합니다.
logStr+='\n': 각 줄마다 *을 모두 추가한 뒤에 줄바꿈 문자(\n)를 logStr에 추가합니다.
console.log(logStr): 최종적으로 완성된 logStr을 출력합니다.
짝수 홀수 개수
정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
function solution(num_list) {
// 객체 만들기
const obj = { 'even': 0, 'odd': 0}
// 배열 순회하면서 객체에 넣기
// 짝수인 경우에는 key가 odd로
// 홀수인 경우에는 key가 even으로
for (let i = 0; i < num_list.length; i++) {
if (num_list[i] % 2 === 1) {
obj['odd'] += 1
} else {
obj['even'] += 1
}
}
return [obj['even'], obj['odd']]
}
주어진 정수가 담긴 리스트 num_list에서 짝수와 홀수의 개수를 세어 배열로 반환하는 함수인 solution을 구현한 것입니다. 아래는 코드의 동작 설명입니다.
const obj = { 'even': 0, 'odd': 0}: 짝수와 홀수의 개수를 저장할 객체 obj를 생성합니다. 초기값으로 even과 odd라는 속성을 가지며, 각각의 값은 0으로 설정됩니다.
for (let i = 0; i < num_list.length; i++) { ... }: num_list 배열을 순회하는 반복문을 실행합니다. i는 현재 요소의 인덱스를 나타냅니다.
if (num_list[i] % 2 === 1) { obj['odd'] += 1 } else { obj['even'] += 1 }: 현재 요소인 num_list[i]가 홀수인지 짝수인지를 판별합니다. 홀수인 경우 obj['odd'] 값을 1 증가시키고, 짝수인 경우 obj['even'] 값을 1 증가시킵니다.
return [obj['even'], obj['odd']]: 최종적으로 짝수의 개수와 홀수의 개수를 담은 배열을 반환합니다. obj['even']은 짝수의 개수를 나타내며, obj['odd']는 홀수의 개수를 나타냅니다.
문자 반복 출력하기
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
function solution(my_string, n) {
var answer = '';
for(let i=0; i<my_string.length; i++){
answer += my_string[i].repeat(n)
}
return answer
}
주어진 문자열 my_string의 각 문자를 n번 반복하여 새로운 문자열을 생성하는 함수인 solution을 구현한 것입니다. 아래는 코드의 동작 설명입니다.
var answer = '';: 결과를 저장할 빈 문자열 answer를 선언합니다.
for(let i=0; i<my_string.length; i++){ ... }: my_string의 각 문자에 대해 반복하는 반복문을 실행합니다. i는 현재 문자의 인덱스를 나타냅니다.
answer += my_string[i].repeat(n): 현재 문자 my_string[i]를 n번 반복한 문자열을 생성하여 answer에 추가합니다. repeat(n) 메서드는 문자열을 n번 반복하여 새로운 문자열을 생성합니다.
return answer: 최종적으로 생성된 문자열 answer를 반환합니다.