
오늘은 백준 2941번 문제를 풀어봤다.
문제는 크로아티아 알파벳을 하나의 문자로 인식해서 총 몇 글자인지를 세는 거였다.
크로아티아 알파벳은 총 8개로 "c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z=" 이렇게 주어진다.
처음엔 이걸 어떻게 처리해야 하나 고민했는데,
단순히 string.Replace()로 해당 알파벳들을 * 같은 문자로 바꿔서
최종 문자열의 길이를 세는 방식으로 해결할 수 있다는 걸 알게 되었다.
예를 들어 "ljes=njak"이라는 문자열이 있으면:
lj, e, s=, nj, a, k → 총 6글자
string input = Console.ReadLine();
string[] croatia = { "c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z=" };
foreach (string c in croatia)
{
input = input.Replace(c, "*");
}
Console.WriteLine(input.Length);
foreach (string c in croatia)에서 c는 배열 croatia에 있는 문자열 하나하나를 의미한다.
이걸 input.Replace()에 넣어서 크로아티아 알파벳을 전부 *로 바꿔주면,
결국 한 글자로 취급되고 길이만 세면 되는 구조였다.
단순한 문제였지만 문자열 처리와 foreach 문법 복습에 좋은 문제였던 것 같다.