숫자만 추출
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205 이 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
function solution(str){
let onlyN = str.replace(/[^0-9]/g, '')
for (let i = 0; i < onlyN.length; i++) {
if(onlyN[i] !== 0) {
return onlyN.slice(i + 1, onlyN.length)
}
}
}
let str="g0en2T0s8eSof89t";
console.log(solution(str));
가장 짧은 문자거리
한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출 력하는 프로그램을 작성하세요.
function solution(s, t){
let answer = []
for (let i = 0; i < s.length; i++) {
if (s[i] === t) answer.push(0)
else {
for (let j = 1; j <= s.length; j++) {
if (i - j >= 0 && s[i - j] === t) {
answer.push(j)
break
}
if (i + j < s.length && s[i + j] === t) {
answer.push(j)
break
}
}
}
}
return answer;
}
let str="teachermodeeabcdccde";
console.log(solution(str, 'e'));
문자열 압축
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시 오. 단 반복횟수가 1인 경우 생략합니다.
function solution(s){
let answer="";
let sum = 1;
for (let i = 1; i <= s.length; i++) {
if (s[i - 1] === s[i]) {
sum++
} else {
if (sum !== 1) {
answer += s[i - 1]
answer += sum
sum = 1
} else answer += s[i - 1]
}
}
return answer;
}
let str="KKHSSSSSSSEEA";
'알고리즘 풀이' 카테고리의 다른 글
[20211018]알고리즘 풀이 (0) | 2021.10.18 |
---|---|
[20211012]알고리즘 풀이 (0) | 2021.10.12 |
[20211009]알고리즘 풀이 (0) | 2021.10.09 |
[20211009]알고리즘 풀이 (0) | 2021.10.09 |
[20211007]알고리즘 풀이 (0) | 2021.10.07 |