알고리즘/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. 첫째 줄에 문자열을 한 번에 입력 받기
  2. 문자열 길이를 알파벳 길이로 가정
  3. 1부터 문자열의 길이까지 크로아티아 알파벳을 찾기 위해 반복문 실행
  4. 크로아티아 알파벳의 변경된 알파벳의 길이만큼 전체 알파벳 길이에서 -하기(ex) 'c='가 나올 경우 -1,     'dz='가 나올 경우 -2)
  5. 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))