알고리즘/baekjoon
baekjoon(2941-크로아티아 알파벳)_ python
ash silver
2022. 4. 13. 12:35
1) 문제
2) 예시
3) 제출
li = list(input()) #한 번에 문자열 입력 받기
cnt = len(li)
for i in range(1, len(li)):
if li[i] == '=':
# dz=
if i > 1 and li[i-1] == 'z' and li[i-2] == 'd':
cnt = cnt - 2
# c=, s=, z=
elif li[i-1] == 'c' or li[i-1] == 's' or li[i-1] == 'z':
cnt = cnt - 1
# c-, d-
if li[i] == '-' and (li[i-1] == 'c' or li[i-1] == 'd'):
cnt = cnt - 1
# lj, nj
if li[i] == 'j' and (li[i-1] == 'l' or li[i-1] == 'n'):
cnt = cnt - 1
print(cnt)
4) 메모리/시간/코드길이
5) PLUS
(ash silver의 문제 해결 과정)
- 첫째 줄에 문자열을 한 번에 입력 받기
- 문자열 길이를 알파벳 길이로 가정
- 1부터 문자열의 길이까지 크로아티아 알파벳을 찾기 위해 반복문 실행
- 크로아티아 알파벳의 변경된 알파벳의 길이만큼 전체 알파벳 길이에서 -하기(ex) 'c='가 나올 경우 -1, 'dz='가 나올 경우 -2)
- cnt 출력
(다른 사람 문제 해결 과정-- https://ooyoung.tistory.com/74)
1. 크로아티아 변경 알파벳을 리스트에 넣음
2. 문자열에 크로아티아 변경 알파벳 리스트가 있는지 확인하고 있으면 replace 함수로 한 글자로 바꿈
3. 전체 문자열 길이 세기
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
word = input()
for i in croatia :
word = word.replace(i, '*')
print(len(word))