x 사이의 개수
문제
문자열 myString
이 주어집니다. myString
을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
- 제한사항
- 1 ≤
myString
의 길이 ≤ 100,000myString
은 알파벳 소문자로 이루어진 문자열입니다.
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let myString = '';
rl.on('line', (line) => {
myString = line;
rl.close();
}).on('close', () => {
const answer = solution(myString);
console.log(answer);
});
const solution = myString => {
let answer = [];
let count = 0;
for (let i = 0; i < myString.length; i++) {
if (myString[i] !== 'x') {
count++;
} else {
answer.push(count);
count = 0;
}
}
answer.push(count);
return answer;
};
문자열 잘라서 정렬하기
문제
문자열 myString
이 주어집니다. myString
을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
- 제한사항
- 1 ≤
myString
의 길이 ≤ 100,000myString
은 알파벳 소문자로 이루어진 문자열입니다.
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let myString = '';
rl.on('line', (line) => {
myString = line;
rl.close();
}).on('close', () => {
const answer = solution(myString);
console.log(answer);
});
const solution = myString => {
let answer = [];
let str = '';
for (let i = 0; i < myString.length; i++) {
if (myString[i] !== 'x') {
str += myString[i];
} else {
if (str !== '') {
answer.push(str);
str = '';
}
}
}
if (str !== '') {
answer.push(str);
}
return answer.sort();
};
간단한 식 계산하기
문제
문자열 binomial
이 매개변수로 주어집니다. binomial
은 "a
op
b
" 형태의 이항식이고 a
와 b
는 음이 아닌 정수, op
는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.
- 제한사항
- 0 ≤
a
,b
≤ 40,000 - 0을 제외하고
a
,b
는 0으로 시작하지 않습니다.
- 0 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let binomial = '';
rl.on('line', (line) => {
binomial = line;
rl.close();
}).on('close', () => {
const answer = solution(binomial);
console.log(answer);
});
const solution = binomial => {
const calcString = binomial.split(' ');
if (calcString[1] === '+') {
return parseInt(calcString[0]) + parseInt(calcString[2]);
} else if (calcString[1] === '-') {
return parseInt(calcString[0]) - parseInt(calcString[2]);
} else if (calcString[1] === '*') {
return parseInt(calcString[0]) * parseInt(calcString[2]);
} else if (calcString[1] === '/')
return parseInt(calcString[0]) / parseInt(calcString[2]);
};
문자열 바꿔서 찾기
문제
문자 "A"와 "B"로 이루어진 문자열 myString
과 pat
가 주어집니다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.
- 제한사항
- 1 ≤
myString
의 길이 ≤ 100 - 1 ≤
pat
의 길이 ≤ 10myString
과pat
는 문자 "A"와 "B"로만 이루어진 문자열입니다.
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let myString = '';
let pat = '';
let count = 0;
rl.on('line', (line) => {
if (count === 0) {
myString = line;
} else {
pat = line;
}
count++;
if (count > 1) {
rl.close();
}
}).on('close', () => {
const answer = solution(myString, pat);
console.log(answer);
});
const solution = (myString, pat) => {
const reverseString = myString.split('').map((char) => char === 'A' ? 'B' : 'A').join('');
for (let i = 0; i <= reverseString.length - pat.length; i++) {
if (pat === reverseString.substring(i, i + pat.length)) {
return 1;
}
}
return 0;
};
rny_string
문제
'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다. 문자열 rny_string
이 주어질 때, rny_string
의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
- 제한사항
- 1 ≤
rny_string
의 길이 ≤ 100 rny_string
은 영소문자로만 이루어져 있습니다.
- 1 ≤
소스 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let rnyString = '';
rl.on('line', (line) => {
rnyString = line;
rl.close();
}).on('close', () => {
const answer = solution(rnyString);
console.log(answer);
});
const solution = rnyString => {
return rnyString.split('').map(str => str === 'm' ? 'rn' : str).join('');
};
Ghost