“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
코딩테스트 입문_문자열, 반복문, 출력, 배열, 조건문
1. 문자열 뒤집기
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
제한 사항
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
입출력 예
my_string | return |
"jaron" | "noraj" |
"bread" | "daerb" |
입출력 예 설명
- my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.
- my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.
풀이
function solution(my_string) {
var answer = '';
for(var i=my_string.length -1; i>=0; i--){
answer += my_string[i];
}
return answer;
}
my_stsring을 거꾸로 뒤집은 문자열을 answer 변수에 저장하고 반환합니다.
반복문을 사용해 문자열을 거꾸로 순회하면서 각 문자를 answer에 추가합니다.
마지막 문자부터 첫 번째 문자까지 거꾸로 순회하기 위해 i변수를 my_string.length -1로 초기화 하고 i-- 를 사용해 감소시킵니다.
2. 직각삼각형 출력하기
문제설명
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
제한사항
- 1 ≤ n ≤ 10
입출력예
3
*
**
***
입출력예설명
- n이 3이므로 첫째 줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출력합니다.
풀이
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++){
console.log('*'.repeat(i));
}
rl.close();
});
n 값을 읽어와 1부터 n까지의 숫자에 해당하는 줄을 출력합니다.
'*'.repeat(i) 는 i번 반복된 '*'문자열을 생성합니다.
입력 스트림을 닫기 위해 rl.close()를 호출합니다.
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] |
입출력 예 설명
- [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.
- [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.
풀이
function solution(num_list) {
var evenCount = 0;
var oddCount = 0;
for(let i=0; i<num_list.length; i++){
if(num_list[i] %2 ===0){
evenCount++;
}else {
oddCount++;
}
}
return [evenCount, oddCount];
}
num_list 의 각 원소를 확인하면서 짝수와 홀수의 개수를 카운트 합니다.
evenCount 와 oddCount 변수를 사용해 짝수와 홀수의 개수를 저장하고
반복문을 사용해 num_list 의 각 원소를 검사합니다.
현재 원소가 짝수라면 evenCont 를 증가시키고, 홀수라면 oddCount 를 증가시킵니다.
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" |
입출력 예 설명
- "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.
풀이
function solution(my_string, n) {
var answer = '';
for(var i=0; i<my_string.length; i++){
var char = my_string[i];
answer += char.repeat(n);
}
return answer;
}
빈문자열인 answer 를 초기화하고, for문을 사용해 my_string에 있는 각 문자를 반복,
char 변수에 현재 순회 중인 문자를 저장하고, char.repeat(n) 을 사용해 char 를 n번 반복한 문자열을 생성.
answer 에 생성된 문자열을 추가