반응형
1. 회문문자열
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(s) {
let answer = 'NO';
const replacedString = s.toUpperCase();
const reversedString = replacedString.split('').reverse().join('');
if (replacedString === reversedString) {
return 'YES';
}
return answer;
}
let str = 'gooG';
console.log(solution(str));
</script>
</body>
</html>
2. 유효한 펠린드롬
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(s) {
let answer = 'YES';
const replacedString = str.toUpperCase().replaceAll(/[^A-Z]/gi, '');
const reversed = replacedString.split('').reverse().join('');
if (replacedString !== reversed) {
answer = 'NO';
}
return answer;
}
let str = 'found7, time: study; Yduts; emit, 7Dnuof';
console.log(solution(str));
</script>
</body>
</html>
3. 숫자만 추출
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(str) {
let answer = '';
const number = str.replace(/[^0-9]/g, '');
return parseInt(number);
// for (let x of str) {
// if (!isNaN(x)) answer += x;
// }
// return parseInt(answer);
}
let str = 'g0en2T0s8eSoft';
console.log(solution(str));
</script>
</body>
</html>
4. 가장짧은문자거리
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(s, t) {
let answer = [];
let distance = 0;
for (ele of s) {
if (ele === t) {
distance = 0;
answer.push(distance);
} else {
distance++;
answer.push(distance);
}
}
for (let i = s.length - 1; i >= 0; i--) {
if (s[i] === t) {
distance = 0;
} else {
distance++;
answer[i] = Math.min(answer[i], distance);
}
}
return answer;
}
let str = 'teachermode';
console.log(solution(str, 'e'));
</script>
</body>
</html>
5. 문자열압축
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(s) {
let answer = '';
let cnt = 1;
console.log(s.length);
console.log(s.length);
for (let i = 0; i < s.length - 2; i++) {
if (s[i] === s[i + 1]) {
cnt++;
} else {
answer += s[i];
if (cnt > 1) {
answer += String(cnt);
cnt = 1;
}
}
}
// const map = new Map();
// for (let x of s.split('')) {
// if (map.has(x)) {
// map.set(x, map.get(x) + 1);
// } else {
// map.set(x, 1);
// }
// }
// for (let [key, value] of map) {
// if (value === 1) {
// answer = answer + key;
// } else {
// answer = answer + key + value;
// }
// }
return answer;
}
let str = 'KKHSSSSSSSE';
console.log(solution(str));
</script>
</body>
</html>
반응형
'CS (컴퓨터 사이언스) > Algorithm (알고리즘)' 카테고리의 다른 글
[알고리즘] 2. 공통원소구하기 (1) | 2024.01.29 |
---|---|
[알고리즘] 1. 자릿수의합 / 2. 뒤집은소수 / 3. 멘토링 / 4. 졸업선물 / 5. k번째수 (0) | 2024.01.28 |
[알고리즘] 1. 큰수출력하기 / 2. 보이는 학생 / 3. 가위바위보 / 5. 등수구하기 / 6. 격자최대합 / 7. 봉우리 (0) | 2024.01.28 |
[알고리즘] 10. 문자찾기 / 11. 대문자찾기 / 12. 대문자로 통일 / 13. 대소문자 변환 / 14. 가장 긴 문자열 / 15. 가운데 문자 출력 / 16. 중복문자제거 / 17. 중복단어제거 (0) | 2024.01.28 |
[알고리즘] 8. 일곱난쟁이 / 9. A를 #으로 (0) | 2023.12.10 |