Baekjoon 2941.py [크로아티아 알파벳]

4775 단어 psps

문제보러가기

내 풀이

import sys
input = sys.stdin.readline
croAlphabet = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="]

word = list(input().rstrip())
word.append('*')
cnt = 0

for i in range(len(word)-2):
    if word[i]+word[i+1] in croAlphabet:
        cnt += 1
        word[i+1] = '*'
    if word[i]+word[i+1]+word[i+2] in croAlphabet:
        cnt += 2
        word[i+1] = '*'
        word[i+2] = '*'
print(len(word)-1-cnt)

복기

  • 크로아티아 알파벳이 3글자, 2글자로 구성되어있어서 for 을 어떻게 사용할지 오래 고민했다.
    그냥 원소를 하나 추가하면 편한것을..
  • 이미 크로아티아 알파벳으로 바뀐 단어를 다시 사용해 개수가 겹치는에러 발생
  • 한참 고민하다가 다른 풀이 참고
  • 이미사용한것은 *로 바꿈
  • 문자열에서 원소를 바꾸는방법을 익히자
word = word.replace(i, '*')

좋은 웹페이지 즐겨찾기