문제1 문자열 뒤집기
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요
제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
입출력 예
my_string | return |
"jaron" | "noraj" |
"bread" | "daerb" |
function solution(my_string) {
var answer = '';
let cnt = my_string.length - 1;
while(cnt >= 0) {
answer += my_string[cnt]
cnt = cnt - 1;
}
return answer;
}
빈 문자열을 선언하고 cnt라는 변수를 문자열의 길이에서 1을 뺀 값으로 초기화합니다
cnt가 0 이상일 때까지 반복문을 실행합니다.
각 반복마다 answer에 my_string[cnt]를 추가합니다.
cnt는 문자열의 인덱스로 사용되며, 역순으로 접근하여 원래 문자열을 뒤집습니다.
cnt를 1 감소시킵니다.
반복문이 종료되면 answer를 반환합니다.
문제2 직각삼각형 출력하기
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요
제한사항
- 1 ≤ n ≤ 10
입출력 예
입력 #1
3
출력 #1
*
**
***
입출력 예 #1
- n이 3이므로 첫째 줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출력합니다.
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 n = Number(input[0]);
let line = 1;
while(line <= n){
let starStr = "";
let cnt = 0;
while(cnt < line){
starStr = starStr+"*"
cnt = cnt + 1;
}
console.log(starStr)
line = line + 1;
}
});
readline 모듈을 가져와 readline 객체를 생성합니다. 이 객체는 사용자의 입력을 읽고 처리하는데 사용됩니다
배열인 input을 선언합니다
rl 객체의 line 이벤트를 리스닝합니다
line 이벤트 핸들러에서는 입력 값을 공백을 기준으로 분리하여 input 배열에 저장합니다
rl 객체의 close 이벤트를 리스닝합니다
close 이벤트 핸들러에서는 input 배열의 첫 번째 요소를 정수로 변환하여 n 변수에 저장합니다
line 변수를 1로 초기화합니다
line이 n보다 작거나 같을 때까지 반복문을 실행합니다.
각 반복마다 starStr이라는 빈 문자열을 초기화합니다.
cnt 변수를 0으로 초기화합니다
cnt가 line보다 작을 때까지 반복문을 실행하고 각 반복마다 starStr에 별(*)을 추가합니다
cnt를 1 증가시킵니다
내부 while 반복문이 종료되면 starStr을 출력합니다
line을 1 증가시킵니다
외부 while 반복문이 종료되면 프로그램이 종료됩니다
사용자가 입력한 숫자에 따라 별 모양의 패턴이 출력됩니다
문제3 짝수 홀수 개수
정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 ≤ num_list의 길이 ≤ 100
- 0 ≤ num_list의 원소 ≤ 1,000
입출력 예
num_list | result |
[1, 2, 3, 4, 5] | [2, 3] |
[1, 3, 5, 7] | [0, 4] |
function solution(num_list) {
let even = 0;
let odd = 0;
let cnt = 0;
while(cnt < num_list.length) {
if(num_list[cnt] % 2 === 0) {
even = even + 1;
} else {
odd = odd + 1;
}
cnt = cnt + 1;
}
return [even, odd];
}
각 변수를 0으로 초기화합니다.
cnt가 num_list의 길이보다 작을 때까지 반복합니다.
각 반복마다 num_list[cnt]를 가져와서 짝수인지 홀수인지 확인합니다
num_list[cnt]가 짝수라면 even을 1 증가시킵니다. 홀수라면 odd를 1 증가시킵니다
cnt를 1 증가시킵니다
반복문이 종료되면 [even, odd] 배열을 반환합니다.
문제4 문자 반복 출력하기
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 ≤ my_string 길이 ≤ 5
- 2 ≤ n ≤ 10
- "my_string"은 영어 대소문자로 이루어져 있습니다.
입출력 예
my_string | n | result |
"hello" | 3 | "hhheeellllllooo" |
function solution(my_string, n) {
var answer = '';
let cnt = 0;
while(cnt < my_string.length){
const repeatCharacter = my_string[cnt];
let repeatCnt = 0;
while(repeatCnt < n) {
answer = answer + repeatCharacter;
repeatCnt = repeatCnt + 1;
}
cnt = cnt + 1;
}
return answer;
}
answer라는 빈 문자열을 선언합니다.
cnt라는 변수를 0으로 초기화합니다
cnt가 my_string의 길이보다 작을 때까지 반복합니다.
각 반복마다 my_string[cnt]를 가져와 repeatCharacter라는 변수에 저장합니다
repeatCnt라는 변수를 0으로 초기화합니다
내부의 while 반복문을 실행합니다
각 반복마다 answer에 repeatCharacter를 추가합니다
repeatCnt를 1 증가시킵니다
내부 while 반복문이 종료되면 외부 while 반복문의 다음 반복을 진행합니다
cnt를 1 증가시킵니다
외부 while 반복문이 종료되면 answer를 반환합니다