[백준] 2941 크로아티아 알파벳 - javascript

Yongwoo Cho·2021년 10월 21일
0

알고리즘

목록 보기
23/104

📌 문제

https://www.acmicpc.net/problem/2941

📌 풀이

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");

let str = input[0];
// 정규표현식으로 풀기
var regex = /c\=|c\-|dz\=|d\-|lj|nj|s\=|z\=/g;
let result = str.replace(regex, " ");
// console.log(result.length)

// 조건문으로 풀기
let cnt = 0;
for (let i = 0; i < str.length; i++) {
  if (str[i] === "c" && (str[i + 1] === "=" || str[i + 1] === "-")) {
    i += 1;
    cnt++;
  } else if (str[i] === "d" && str[i + 1] === "z" && str[i + 2] === "=") {
    i += 2;
    cnt++;
  } else if (str[i] === "d" && str[i + 1] === "-") {
    i += 1;
    cnt++;
  } else if (str[i + 1] === "j" && (str[i] === "l" || str[i] === "n")) {
    i += 1;
    cnt++;
  } else if (str[i] === "s" && str[i + 1] === "=") {
    i += 1;
    cnt++;
  } else if (str[i] === "z" && str[i + 1] === "=") {
    i += 1;
    cnt++;
  } else {
    cnt++;
  }
}
console.log(cnt);

✔ 알고리즘 : 문자열

✔ 풀이 1 : 정규표현식 (위의 코드 참고), result.length로 답출력

✔ 풀이 2 : if else 조건식으로 크로아티아 알파벳으로 바꿀 수 있는지 판별

❗ 크로아티아 알파벳이 되지않는 경우는 마지막 else에서 cnt를 1증가

✔ 난이도 : 백준 기준 실버5

profile
Frontend 개발자입니다 😎

0개의 댓글