Programming/BOJ
백준 BaekJoon Online Judge // 2941
껨코
2021. 1. 18. 16:09
백준 알고리즘 BaekJoon Online Judge 2941번 "크로아티아 알파벳" 문제입니다.
S = input()
cnt = 0
lst = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
while len(S) > 0:
if len(S) >= 3:
if S[0:3] in lst:
S = S.replace(S[0:3], '', 1)
cnt += 1
elif S[0:2] in lst:
S = S.replace(S[0:2], '', 1)
cnt += 1
else:
S = S.replace(S[0:1], '', 1)
cnt += 1
elif len(S) == 2:
if S[0:2] in lst:
S = S.replace(S[0:2], '', 1)
cnt += 1
else:
S = S.replace(S[0:1], '', 1)
cnt += 1
else:
S = S.replace(S[0:1], '', 1)
cnt += 1
print(cnt)
두 세개으 문자들을 하나의 알파벳인 경우를 체크하고 나머지는 문자 1개당 알파벳 1개로 따지는 문제다.
더 효율적인 방법들도 있겠지만 나는 앞에서부터 탐색하면서 해당되는 문자열은 2~3 한 번에 제거하고
아닐 경우에는 1개씩 replace 메서드로 제거하는 방법을 택했다.
비효율적일수도 있겠지만 이게 내 생각에는 조금 더 직관적인 방법이라고 생각한다.