2941번 : 크로아티아 알파벳 문제
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다.
따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.
크로아티아 알파벳 변경
č | c= |
ć | c- |
dž | dz= |
đ | d- |
lj | lj |
nj | nj |
š | s= |
ž | z= |
예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다.
단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.
dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다.
lj와 nj도 마찬가지이다.
위 목록에 없는 알파벳은 한 글자씩 센다.
https://www.acmicpc.net/problem/2941
풀이 코드
word = input()
alphabet = ['c=','c-','dz=','d-','lj','nj','s=','z=']
count = 0
for i in alphabet:
word = word.replace(i, '*')
print(len(word))
[문제점]
크로아티아 알파벳은 각 문자마다 알파벳의 수가 다름
▶2~3 글자로 이루어진 알파벳은 한 글자로 먼저 변환하자!
word = input()
- 첫째 줄에서 알파벳 소문자와 '-', '=' 로 이루어진 단어를 입력받음
- input() 을 통해 한 줄의 문자열을 입력받을 수 있음
- 입력받은 문자열을 변수 word 에 저장
alphabet = ['c=','c-','dz=','d-','lj','nj','s=','z=']
- 2~3개의 문자로 이루어진 크로아티아 알파벳을, 하나의 문자열로 저장
- 하나의 문자열로 저장한 알파벳을 alphabet 리스트에 저장
count = 0
- 입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 세기 위한 변수
- 0으로 초기화
for i in alphabet:
- 'for 변수 in 리스트' 형태로, in 뒤에 오는 데이터로는 리스트, 튜플, 문자열 사용
- alphabet 리스트에 저장한 8개의 크로아티아 알파벳을 하나씩 순차 방문
word = word.replace(i, '*')
- replace() 함수 사용
- alphabet 리스트에 저장한 8개의 크로아티아 알파벳을 * 로 변경
( 2~3개의 문자로 이루어진 문자를, * 하나의 문자로 변경 가능)
[replace 함수]
- 문자열을 변경하는 함수
- 문자열에서 특정 문자를 다른 문자로 변경할 수 있음
replace(old, new, [count])
# old : 변경하고자 하는 문자
# new : 변경할 문자
# count : 변경 횟수 (지정하지 않으면, old 문자열 전체 변경)
print(len(word))
- 문자열의 길이를 구하는 len() 함수 사용
- len(word) 에서, replace 로 변경된 새로운 문자열의 문자 개수를 출력
나동빈 '이것이 코딩 테스트다 with 파이썬' 책을 참고하여 작성하였습니다.
https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC
'백준 알고리즘 문제 풀이 [Python]' 카테고리의 다른 글
[백준/Python] 1712번 손익분기점 (기본수학1) (0) | 2023.02.23 |
---|---|
[백준/Python] 1316번 그룹 단어 체커 (문자열) (0) | 2023.02.23 |
[백준/Python] 5622번 다이얼 (문자열) (0) | 2023.02.23 |
[백준/Python] 2908번 상수 (문자열) (0) | 2023.02.23 |
[백준/Python] 1152번 단어의 개수 (문자열) (0) | 2023.02.23 |