https://www.acmicpc.net/problem/2941
alphabet = {'c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='}
str = input()
def find_count(str):
for i in alphabet:
str = str.replace(i, 'a')
print(len(str))
find_count(str)
어려운 문제가 아닌 것 같았는데.. 다른 테스트케이스를 통과하지못하고 결국 다른 사람의 풀이를 참고해보게 되었다..ㅠㅠ
정리를 해보자
1. 우선 함수식으로 깔끔하게 정리하면서 문제를 풀기로 했다. 나중에 코딩테스트를 통과하게되면 코드를 설명해야 할수도있는데, 가독성이 좋게 보여야 하기 때문이다. 미리 연습하쟈
2. 주어진 문자들을 한 배열로 두고서 입력한 문자열와 비교하면서 같을 경우에 count를 통해서 여러문자를 하나로 보고, 입력한 문자열의 길이에서 count를 빼주는 방향으로 갔는데, 틀렸다고 나왔다.
3. 이유를 생각해보니, 2번째 테스트케이스에서 dz=, z=에 해당하는 문자가 둘다 읽어서 제대로 된 카운트를하지못하고 있었다.
4. 결국 다른 정답을 보니 replace()를 활용해야 했던 것 같다. 처음에 들어오면 바로 한글자로 치환해주어 뒤에 다른 문자와 영향이 없도록 해주는 방향으로 문제를 풀었어야 했다.
replace를 사용하지 않은 풀이를 찾아보려고 했는데, 찾지못했다. ㅠ