프로그래머스 : JavaScript 알고리즘 100일 챌린지 6일차
- 프로그래머스 : https://school.programmers.co.kr/learn/challenges/training?order=acceptance_desc
- 유트브 참고 : https://www.youtube.com/watch?v=RMmOU2u-_as&list=PLkfUwwo13dlWZxOdbvMhkzhAowaiEjuGS
코딩테스트 입문 Day6
1. 문자열 뒤집기 : 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
var answer = '';
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
my_string | return |
"jaron" | "noraj" |
"bread" | "daerb" |
답 확인하기
function solution(my_string) {
var answer = '';
for (let i = my_string.length - 1; i >= 0; i--) {
answer += my_string[i];
}
return answer;
}
해설 확인하기
주어진 코드는 solution이라는 함수를 정의하고 있습니다. 이 함수는 my_string이라는 문자열을 매개변수로 받습니다.
해당 함수의 동작은 다음과 같습니다:
빈 문자열 answer를 생성합니다.
for 루프를 사용하여 i를 my_string의 마지막 인덱스부터 0까지 역순으로 반복합니다.
answer += my_string[i]를 실행합니다. 이는 my_string의 i번째 문자를 answer 문자열에 추가합니다.
answer 문자열을 반환합니다.
결과적으로, solution 함수는 my_string 문자열을 역순으로 변환하여 반환합니다. 예를 들어, 입력이 'hello'인 경우 'olleh'를 반환합니다.
2. 직각삼각형 출력하기 : "*"의 높이와 너비를 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 () {
console.log(Number(input[0]));
});
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
답 확인하기
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]));
for (let i = 1; i <= n; i++) {
let starStr = "";
for (let j = 0; j < i; j++) {
starStr += "*";
}
console.log(starStr);
}
});
해설 확인하기
주어진 코드는 Node.js 환경에서 사용자로부터 입력을 받아와서 별(*)을 출력하는 프로그램입니다.
해당 코드의 동작은 다음과 같습니다:
readline 모듈을 불러와서 인터페이스를 생성합니다. 이를 통해 사용자로부터의 입력을 처리할 수 있습니다.
빈 배열 input을 생성합니다.
rl.on('line', ...)은 사용자로부터 한 줄씩 입력을 받을 때마다 호출되는 이벤트 핸들러입니다.
받은 입력을 공백으로 구분하여 input 배열에 저장합니다.
rl.on('close', ...)는 입력을 모두 받은 후에 호출되는 이벤트 핸들러입니다.
input[0]을 숫자로 변환하여 n에 저장합니다.
1부터 n까지 반복문을 실행합니다.
starStr이라는 빈 문자열을 생성합니다.
0부터 i-1까지 반복문을 실행합니다.
starStr에 별(*)을 추가합니다.
starStr을 출력합니다.
프로그램이 종료됩니다.
위의 코드는 사용자로부터 입력받은 숫자 n에 따라 별 모양의 패턴을 출력하는 프로그램입니다.
3. 짝수 홀수 갯수 : 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
function solution(num_list) {
var answer = [];
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
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;
for (let i = 0; i < num_list.length; i++) {
if (num_list[i] % 2 === 0) {
even++;
} else {
odd++;
}
}
return [even, odd];
}
해설 확인하기
주어진 코드는 solution이라는 함수를 정의하고 있습니다. 이 함수는 num_list라는 숫자 배열을 매개변수로 받습니다.
해당 함수의 동작은 다음과 같습니다:
even과 odd라는 변수를 0으로 초기화합니다. 각각은 짝수와 홀수의 개수를 나타냅니다.
for 루프를 사용하여 i를 0부터 num_list 배열의 길이까지 반복합니다.
if 문을 사용하여 num_list[i]가 짝수인지 홀수인지 확인합니다.
num_list[i] % 2 === 0는 num_list[i]를 2로 나눈 나머지가 0인지를 확인하는 조건입니다.
num_list[i]가 짝수인 경우 even 변수를 증가시킵니다.
num_list[i]가 홀수인 경우 odd 변수를 증가시킵니다.
[even, odd] 형태의 배열을 반환합니다. 이 배열은 짝수의 개수와 홀수의 개수를 담고 있습니다.
결과적으로, solution 함수는 num_list 배열에서 짝수와 홀수의 개수를 세어서 [even, odd] 형태의 배열로 반환합니다.
4. 문자 반복 출력하기 : 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
function solution(my_string, n) {
var answer = '';
return answer;
}
길라잡이
- 변수 answer의 데이터를 수정해서 답을 구해보세요.
- 예시
my_string | n | result |
"hello" | 3 | "hhheeelllooo" |
답 확인하기
function solution(my_string, n) {
var answer = '';
for (let i = 0; i < my_string.length; i++) {
answer += my_string[i].repeat(n);
}
return answer;
}
해설 확인하기
주어진 코드는 solution이라는 함수를 정의하고 있습니다. 이 함수는 my_string이라는 문자열과 n이라는 정수를 매개변수로 받습니다.
해당 함수의 동작은 다음과 같습니다:
빈 문자열 answer를 생성합니다.
for 루프를 사용하여 i를 0부터 my_string의 길이까지 반복합니다.
my_string[i].repeat(n)을 실행합니다. 이는 my_string의 i번째 문자를 n번 반복한 문자열을 생성합니다.
생성한 문자열을 answer에 추가합니다.
answer 문자열을 반환합니다.
결과적으로, solution 함수는 my_string 문자열의 각 문자를 n번 반복하여 생성한 문자열을 결합한 결과인 answer를 반환합니다. 예를 들어, my_string이 'abc'이고 n이 3인 경우, 'aaabbbccc'를 반환합니다.