-
[백준] 2941번_크로아티아알파벳Study/알고리즘 2020. 2. 6. 16:44
문제 링크 : https://www.acmicpc.net/problem/2941
2941번: 크로아티아 알파벳
문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고,
www.acmicpc.net
string = input() alpha = ["c=","c-","dz=",'d-','lj','nj','s=','z='] cnt = 0 while True: flag = True for a in alpha: if a in string: cnt += string.count(a) string=string.replace(a,'_') flag = False if flag: for s in string: if s != '_': cnt+=1 break print(cnt)
너무 어렵게 생각해서인지 위와 같이 드럽게? 풀었다가 어차피 포함되는 것을 replace를 통해 특정 문자(여기선 '_')로 바꿔야하는 것과 if a in string에서 string에서 a를 한 번만 찾는게 아니라 다 찾게 되므로 불필요한 while문이 있다는 것을 깨닫게 되었다.
그래서 다시,
string = input() alpha = ["c=","c-","dz=",'d-','lj','nj','s=','z='] for a in alpha: string = string.replace(a,'_') print(len(string))
아주 그냥 깔끔하구만!
'Study > 알고리즘' 카테고리의 다른 글
[백준] 2839번_설탕배달 (0) 2020.02.06 [백준] 1712번_손익분기점 (0) 2020.02.06 [백준] 1316번_그룹단어체커 (0) 2020.02.06 [백준] 5622번_다이얼 (0) 2020.02.06 [백준] 2908번_상수 (0) 2020.02.06