https://www.acmicpc.net/problem/2941
내 첫 접근은 이렇다.
근데 문제가 생김🚨
word = input()
al = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
cnt = 0
word_dup = word
for i in al :
if i in word_dup :
cnt += word.count(i)
word_dup = word_dup.replace(i, "")
print(len(word_dup) + cnt)
[반례]
input : zdz==ak
output : 4
단어는 5개로 이뤄져있으나 답은 4가 나온다.
입력 받은 문자에서 해당되는 크로아티아 알파벳을 공백으로 변경(제거)하면 다음 루프 때, 공백 제거 후 남은 단어가 조합되어 또 다른 크로아티아 알파벳을 만들어낼 케이스가 생김.
그래서 공백 대신 특정 문자로 대체하는 것이 안전하다.
word = input()
al = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
cnt = 0
word_dup = word
for i in al :
if i in word :
word = word.replace(i, "*")
print(len(word))
replace()
메소드는 문자열에서 특정 문자나 문자열을 다른 문자나 문자열로 대체한다. 예를 들어, 문자열 "Hello World!"에서 "o"를 제거하려면 다음과 같이 하면 된다.string = "Hello World!"
new_string = string.replace('o', '')
print(new_string)
# "Hell Wrld!"