PS/BOJ

[백준] 2941.cpp : 크로아티아 알파벳

bconfiden2 2020. 6. 11. 09:08

www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s=

www.acmicpc.net

#include <iostream>
#include <string>
using namespace std;

int main(void)
{
  string s;
  // 크로아티아 문자
  string w[8] = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};
  cin >> s;

  // 각 크로아티아 문자들을 다 비교해줌
  for(int i = 0 ; i < 8 ; i++)
  {
    // 문자열에서 아무것도 안나올때까지
    while(s.find(w[i]) != string::npos)
    {
      // 해당 크로아티아 문자를 찾아서 아무 관련 없는 k 라는 문자로 치환
      s.replace(s.find(w[i]), w[i].size(), "k");
    }
  }

  cout << s.size() << endl;
}

 

[Try]

1. 입력받은 문자열을 다 돌면서 각 알파벳들을 한글자로 바꿔준다.

 

[Point]

1. 굳이 string 사용하지 않고 - 랑 = 를 사용하여 비교해주는게 간단해 보인다.

 

[More]

1. 정규표현식 regex