QUOTE THE DAY
“ 당신이 6개월 이상 한 번도 보지 않은 코드는 다른 사람이 다시 만드는 게 훨씬 더 나을 수 있다. ”
-
이글슨 (Eagleson)
반응형
코딩테스트 입문 Day 6 문자열, 반복문, 출력, 배열, 조건문
출처 : https://programmers.co.kr/
문자열 뒤집기
문제
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
입출력 예
my_string | result |
"jaron" | "noraj" |
"bread" | "daerb" |
입출력 예 설명
입출력 예 #1
- my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.
입출력 예 #2
- my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.
solution.js
function solution(my_string) {
var answer = '';
for (var i = my_string.length - 1; i >= 0; i--) {
answer += my_string.charAt(i);
}
return answer;
}
- answer라는 빈 문자열을 초기화합니다.
- i를 my_string의 마지막 인덱스로 초기화합니다.
- i가 0보다 크거나 같을 때까지 반복합니다.
- 반복문 안에서 my_string의 i번째 문자를 answer에 추가합니다.
- i를 하나씩 감소시킵니다.
- 반복문이 종료되면 뒤집힌 문자열인 answer를 반환합니다.
직각삼각형 출력하기
문제
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
제한사항
- 1 ≤ n ≤ 10
입출력 예
입력 #1
3
출력 #1
*
**
***
입출력 예 설명
입출력 예 #1
- n이 3이므로 첫째 줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출력합니다.
solution.js
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function (line) {
const n = parseInt(line);
for (let i = 1; i <= n; i++) {
let row = '';
for (let j = 1; j <= i; j++) {
row += '*';
}
console.log(row);
}
rl.close();
});
- readline 모듈을 사용하여 표준 입력을 처리하기 위한 설정입니다. readline은 사용자와 상호작용하면서 텍스트 기반 인터페이스를 만들 수 있게 도와주는 모듈입니다.
- createInterface 함수를 사용하여 rl이라는 인터페이스 객체를 생성합니다. rl은 표준 입력(process.stdin)과 표준 출력(process.stdout)을 사용합니다.
- rl.on('line', function (line) { ... })은 사용자로부터 입력을 받을 때마다 실행되는 이벤트 핸들러입니다. line은 사용자가 입력한 한 줄의 문자열을 나타냅니다.
- parseInt(line)을 사용하여 입력된 문자열을 정수형으로 변환하여 n에 저장합니다.
- for 반복문을 사용하여 삼각형을 형성하는 '' 문자열을 생성하고 출력합니다. 외부 반복문에서는 i를 1부터 n까지 1씩 증가시킵니다. 내부 반복문에서는 j를 1부터 i까지 1씩 증가시키며 ''을 row 문자열에 추가합니다.
- console.log(row)를 사용하여 row 문자열을 출력합니다. 이렇게 하면 한 줄씩 '*'이 추가되어 삼각형 모양이 만들어집니다.
- rl.close()는 입력을 모두 받은 후 인터페이스를 닫아 프로그램을 종료합니다.
짝수 홀수 개수
문제
정수가 담긴 리스트 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] |
입출력 예 설명
입출력 예 #1
- [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.
입출력 예 #2
- [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.
solution.js
function solution(num_list) {
let evenCount = 0;
let oddCount = 0;
for (let i = 0; i < num_list.length; i++) {
if (num_list[i] % 2 === 0) {
evenCount++;
} else {
oddCount++;
}
}
return [evenCount, oddCount];
}
- evenCount와 oddCount라는 변수를 0으로 초기화합니다. 이 변수들은 각각 짝수와 홀수의 개수를 저장합니다.
- i를 0부터 num_list의 길이보다 작을 때까지 1씩 증가시키면서 반복문을 실행합니다.
- 반복문 안에서 현재 요소인 num_list[i]가 짝수인지 확인합니다. num_list[i] % 2 === 0는 num_list[i]가 2로 나누어 떨어지는지 확인하는 조건입니다.
- 만약 num_list[i]가 짝수라면 evenCount를 1 증가시킵니다.
- 그렇지 않으면(num_list[i]가 홀수인 경우), oddCount를 1 증가시킵니다.
- 반복문이 종료되면 evenCount와 oddCount를 담은 배열을 반환합니다.
문자 반복 출력하기
문제
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 ≤ my_string 길이 ≤ 5
- 2 ≤ n ≤ 10
- "my_string"은 영어 대소문자로 이루어져 있습니다.
입출력 예
my_string | n | result |
"hello" | 3 | "hhheeellllllooo" |
입출력 예 설명
입출력 예 #1
- "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.
solution.js
function solution(my_string, n) {
let answer = '';
for (let i = 0; i < my_string.length; i++) {
const char = my_string[i];
answer += char.repeat(n);
}
return answer;
}
- answer라는 빈 문자열을 초기화합니다. 이 변수는 최종적으로 반환될 반복된 문자열을 저장합니다.
- i를 0부터 my_string의 길이보다 작을 때까지 1씩 증가시키면서 반복문을 실행합니다.
- 반복문 안에서 현재 문자인 char를 my_string의 i번째 문자로 설정합니다.
- char.repeat(n)을 사용하여 char를 n번 반복한 문자열을 생성합니다.
- 생성된 반복된 문자열을 answer에 추가합니다.
- 반복문이 종료되면 answer를 반환합니다.
반응형