
문제 설명
문자열
myyString이 주어졌을 때, 문자"x"를 기준으로 나눈 문자열 각각의 길이를 순서대로 저장한 배열을 반환
| myString | result |
|---|---|
| "oxooxoxxox" | [1, 2, 1, 0, 1, 0] |
| "xabcxdefxghi" | [0, 3, 3, 3] |
function solution(myString) {
const answer = [];
let x = 0;
for (let char of myString) {
if (char === 'x') {
answer.push(x);
x = 0;
} else {
x++;
}
}
answer.push(x);
return answer;
}
풀이 설명
- Array변수
answer과 길이를 저장할 변수x를 선언한다.myString의 전체를 돌면서 각 하나의 문자를 비교하여"x"인지 확인한다."x"가 나오지 않으면x변수에1을 더해주고, 업다면 현재x에 저장된 값을answer에 push하고 변수x를 초기화 한다.- 반복이 끝나고 난 후 미처 초기화되지 못한
x에 값이 있을 수도 있기 때문에x를 push 해주고 return한다.
문제 설명
문자열
myString이 주어지고"x"를 기준으로 문자를 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 반환하시오.
| myString | result |
|---|---|
| "axbxcxdx" | ["a","b","c","d"] |
| "dxccxbbbxaaaa" | ["aaaa","bbb","cc","d"] |
function solution(myString) {
return myString.split('x').map(v => v).filter(v => v !== "").sort();
}
풀이 설명
myString문자열을 문자"x"를 기준으로 잘라준다.map()메서드를 사용하여 모든 요소를 돌면서filter()를 사용하여 빈 문자열이 아닌경우에만 배열에 추가한다.- 마지막으로
sort()를 사용하여 정렬해주면 된다. (sort()메서드는 유니코드순으로 정렬한다.)
문제 설명
문자열
binomial변수가 주어졌을 때, "aopb" 형태의 이항식이고a와b는 음이 아닌 정수,op는 '+', '-', '*' 중 하나이고, 주어진 식을 계산후 반환하시오.
| binomial | result |
|---|---|
| "43 + 12" | 55 |
| "0 - 7777" | -7777 |
| "40000 * 40000" | 1600000000 |
function solution(binomial) {
let c = [];
c = binomial.split(" ");
return c[1] == "+" ? Number(c[0])+Number(c[2]) : c[1] == "-" ? c[0]-c[2] : c[0]*c[2]
}
풀이 설명
- 문자열
binomial은 띄어쓰기 기준으로 숫자와 연산기호가 나눠져 있다.- 따라서 배열
c를 선언하고binomial을split()을 사용하여 나눠c에 저장한다.- 3항 연산자를 2중으로 사용하여 반환한다.
문제 설명
문자 A와 B로 이루어진 문자열
myString과pat이 주어지고myString를"A"는"B"로"B"는"A"로 바꾼 후pat문자열과 비교하여 부분문자열이 포함 되어 있을 때1을 출력하고, 없으면0을 출력하시오.
| myString | pat | result |
|---|---|---|
| "ABBAA" | "AABB" | 1 |
| "ABAB" | "ABAB" | 0 |
function solution(myString, pat) {
let contain = myString.split("");
let str = [];
for (let x of contain){
x == "A" ? str.push("B") : str.push("A");
}
return str.join("").includes(pat) ? 1 : 0
}
풀이 설명
- 변수
contain과str을 선언하고,myString을 잘라contain에 저장한다.- 3항 연산자를 사용하여
contain에 있는 요소를 모두 돌면서"A"는"B"로"B"는"A"로str에 넣어준다.str을 이어붙이고includes()메서드를 사용하여 부분 문자열pat이 있는지 3항 연산자로 확인 후1과0을 출력한다.
문제 설명
문자열
rny_string이 주어졌을 때, 문자열 안에m을rn으로 바꾼 문자열을 반환하시오.
| rny_string | result |
|---|---|
| "masterpiece" | "rnasterpiece" |
| "programmers" | "prograrnrners" |
| "jerry" | "jerry" |
| "burn" | "burn" |
function solution(rny_string) {
return rny_string.replaceAll("m", "rn")
}
풀이 설명
replaceAll()을 사용하여 문자열 내 특정 문자나 부분 문자열을 모두 다른 것으로 치환할 수 있다.replaceAll(바꿀 문자, 대신 넣을 문자)처럼 파라미터를 설정해주면 된다.