Algorithm/μΈνλ°(inflearn)
[JavaScript/section 3] 02 - μ ν¨ν ν°λ¦°λ둬
_μ±νΈ_
2022. 9. 8. 12:28
728x90
λ°μν
π λ¬Έμ
μμμ μ½μ λλ λ€μμ μ½μ λλ κ°μ λ¬Έμμ΄μ ν°λ¦°λ둬μ΄λΌκ³ νλ€. λ¬Έμμ΄μ΄ μ λ ₯λλ©΄ ν΄λΉ λ¬Έμμ΄μ΄ ν°λ¦°λ둬μ΄λ©΄ "YES", μλλ©΄ "NO"λ₯Ό μΆλ ₯νλ λ¬Έμ μ΄λ€.
λ¨, νλ¬Έμ κ²μ¬ν λ μνλ²³λ§ κ°μ§κ³ νλ¬Έμ κ²μ¬νλ©°, λμλ¬Έμλ₯Ό ꡬλΆνμ§ μλλ€. μνλ²³ μ΄μΈμ λ¬Έμλ€μ 무μνλ€.
π§π»π» λμ νμ΄ λ°©λ²
- toUpperCase() λ©μλλ₯Ό μ¬μ©νμ¬ μ λ ₯λ λ¬Έμμ΄μ λλ¬Έμλ‘ λ³ννλ€.
- κ° λ¬Έμλ€μ νλμ© λλ©΄μ charCodeAt() λ©μλλ₯Ό μ¬μ©νμ¬ μνλ²³μ ν΄λΉνλ λ¬Έμλ§ str λ³μμ λμ μμΌμ€λ€.
π¨πΌπ« κ°μ¬λ νμ΄ λ°©λ²
[^]: λΆμ λ¬Έμ ν΄λμ€. λκ΄νΈ μμ ν¬ν¨λμ§ μμ λ¬Έμλ€λ‘ λ§€μΉ.
^(μΊλΏ): μ λ ₯μ μμκ³Ό λ§€μΉ.
- toUpperCase() λ©μλλ₯Ό μ¬μ©νμ¬ μ λ ₯λ λ¬Έμμ΄μ λλ¬Έμλ‘ λ³ννλ€.
- μνλ²³μ ν΄λΉνμ§ μλ λ¬Έμλ€μ replace() λ©μλμ μ κ· ννμλ₯Ό μ¬μ©(replace(/[^A-Z]/g, ''])νμ¬ λΉ λ¬Έμ('')λ‘ κ΅μ²΄νλ€.
π νμ΄
// λμ νμ΄ λ°©λ²
function solution(s) {
let answer = 'YES';
s = s.toUpperCase();
let str = '';
for (let x of s) {
if (x.charCodeAt() >= 65 && x.charCodeAt() <= 90) str += x;
}
if (str !== str.split('').reverse().join('')) return 'NO';
return answer;
}
let str = 'found7, time: study; Yduts; emit, 7Duof';
console.log(solution(str));
// κ°μ¬λ νμ΄ λ°©λ²
function solution(s) {
let answer = 'YES';
s = s.toUpperCase().replace(/[^A-Z]/g, '');
if (s.split('').reverse().join('') !== s) return 'NO';
return answer;
}
let str = 'found7, time: study; Yduts; emit, 7Dnuf';
console.log(solution(str));