Baekjoon 2941번 크로아티아 알파벳
https://www.acmicpc.net/problem/2941
처음에 어떻게 할까 생각하다 첫 알파벳이 같을 때 꺼내와서 조건문에 넣고 돌려야겠다는 생각으로 다음과 같이 코딩을 짜보았다.
그러나 frontalp가 딱히 필요할 것 같다는 생각이 들었고 삭제해도 무난히 작동됨을 알 수 있었다.
cf)
코딩을 짜는데 제일 짜증났던 부분은 'dz='라는 알파벳인데 이 알파벳만 유일하게 3자리이다.
이것 때문에 슬라이싱하는데 까다롭다는 생각을 하게되었고 for문에서 바로 jump하는 법이 없기때문에 따로 조건문을 또 써줘야하는 에러점이 생겼다.
getStr=input()
chalp=['c=','c-','dz=','d-','lj','nj','s=','z='] #앞자리 c,d,l,n,s,z
frontalp=['c','d','l','n','s','z']
boolJump=False
sumalp=0
for i in range(len(getStr)):
if boolJump== True:
boolJump=False
if getStr[i-1:i+2] == 'dz=':
boolJump=True
continue
else:
if getStr[i] in frontalp:
if getStr[i:i+2] in chalp or getStr[i:i+3]=='dz=':
sumalp +=1
boolJump=True
else:
sumalp+=1
else:
sumalp +=1
print(sumalp)
frontalp 삭제 후의 코딩
getStr=input()
chalp=['c=','c-','dz=','d-','lj','nj','s=','z=']
boolJump=False
sumalp=0
for i in range(len(getStr)):
if boolJump== True:
boolJump=False
if getStr[i-1:i+2] == 'dz=':
boolJump=True
continue
else:
if getStr[i:i+2] in chalp or getStr[i:i+3]=='dz=':
sumalp +=1
boolJump=True
else:
sumalp+=1
print(sumalp)
다만 이렇게 사용하면 boolJump의 리소스나 for문으로 돌리는 소모 값이 크기 때문에
while문을 사용하는 방법 혹은 다른 언어라면 do while문을 사용하는 방법이 의미있을 수 있다는 생각을 하게되었으나 귀차니즘으로 패스
ALL RIGHT RESERVED TWINSTARINFO

