# Level 0. 잘라서 배열로 저장하기
잘라서 배열로 저장하기
문제 설명
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_str의 길이 ≤ 100
- 1 ≤ n ≤ my_str의 길이
- my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
문제풀이
1
2
3
4
5
6
7
8
9 | function solution(my_str, n) {
const answer = [];
let index = 0;
while (index < my_str.length) {
answer.push(my_str.slice(index, index + n));
index += n;
}
return answer;
}
|
# Level 0. 캐릭터의 좌표
캐릭터의 좌표
문제 설명
머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요.
- [0, 0]은 board의 정 중앙에 위치합니다. 예를 들어 board의 가로 크기가 9라면 캐릭터는 왼쪽으로 최대 [-4, 0]까지 오른쪽으로 최대 [4, 0]까지 이동할 수 있습니다.
제한사항
- board은 [가로 크기, 세로 크기] 형태로 주어집니다.
- board의 가로 크기와 세로 크기는 홀수입니다.
- board의 크기를 벗어난 방향키 입력은 무시합니다.
- 0 ≤ keyinput의 길이 ≤ 50
- 1 ≤ board[0] ≤ 99
- 1 ≤ board[1] ≤ 99
- keyinput은 항상 up, down, left, right만 주어집니다.
문제풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | function solution(keyinput, board) {
const character = [0, 0];
const halfWidth = (board[0] - 1) / 2;
const halfHeigth = (board[1] - 1) / 2;
keyinput.forEach((key) => {
switch (key) {
case "left":
if (character[0] > -halfWidth) character[0]--;
break;
case "right":
if (character[0] < halfWidth) character[0]++;
break;
case "down":
if (character[1] > -halfHeigth) character[1]--;
break;
case "up":
if (character[1] < halfHeigth) character[1]++;
break;
}
});
return character;
}
|
# Level 0. 문자열안에 문자열
문자열안에 문자열
문제 설명
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ str1의 길이 ≤ 100
- 1 ≤ str2의 길이 ≤ 100
문제 풀이
1
2
3
4 | function solution(str1, str2) {
const strRegExp = new RegExp(str2);
return strRegExp.test(str1) ? 1 : 2;
}
|
# Level 0. 문자열 정렬하기 (2)
문자열 정렬하기 (2)
문제 설명
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
문제풀이
1
2
3 | function solution(my_string) {
return my_string.toLowerCase().split("").sort().join("");
}
|
# Level 0. OX퀴즈
OX퀴즈
문제 설명
덧셈, 뺄셈 수식들이 ‘X [연산자] Y = Z’ 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 “O”를 틀리다면 “X”를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다. 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다.
- 1 ≤ quiz의 길이 ≤ 10
- X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며, 각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다.
- X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다.
- -10,000 ≤ X, Y ≤ 10,000
- -20,000 ≤ Z ≤ 20,000
- [연산자]는 + 와 - 중 하나입니다.
문제풀이
1
2
3
4
5
6
7
8
9
10
11 | const getExpressionResult = (expression) => {
const [X, operator, Y, _, Z] = expression.split(" ");
let result = X * 1;
result += operator === "+" ? Y * 1 : Y * -1;
return result === Z * 1 ? "O" : "X";
};
const solution = (quiz) => {
const answer = quiz.map((expression) => getExpressionResult(expression));
return answer;
};
|