변경된 문자를 크로아티아 문자로 바꾼다.
그 후 크로아티아 문자중 갯수가 2개인 문자열이 있으면 '1'로 바꾸고
최종적으로 변환된 문자열의 갯수를 반환한다.
const solution = () => {
let str = input[0].replace(/(\s*)/g, "")
const croatia = {
'c=': 'č',
'c-': 'ć',
'dz=': 'dž',
'd-': 'đ',
's=': 'š',
'z=': 'ž'
}
const twoLength = ['dž', 'lj', 'nj']
Object.entries(croatia).map(([key, value]) => {
const arr = str.split(key);
str = arr.join(value)
})
twoLength.map((v)=> {
const arr = str.split(v);
str = arr.join('1')
})
console.log(str.length)
}
solution()
const fs = require("fs");
const input = (
process.platform === "linux"
? fs.readFileSync("/dev/stdin").toString()
: `ljes=njak`
).trim();
let croatia = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="];
function solution(input) {
for (let alphabet of croatia) {
input = input.split(alphabet).join("Q");
}
return input.length; // return input일 경우 QeQQak를 반환한다.
}
console.log(solution(input));
생각해보면 크로아티아 문자를 한 개로만 처리하면 됐다.
나는 굳이 크로아티아 문자로 변경한 후에 2글자인 문자만 1개로 변경해서 의미없는 연산을 했다..
또 문제에 국한해서 편협적으로 생각한 것 같다.