본문 바로가기
Algorithm/Python

백준 - 2941 - 크로아티아 알파벳 - Python /문자열

by imagineer_jinny 2021. 3. 6.

2941번: 크로아티아 알파벳 (acmicpc.net)

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

 

문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.

크로아티아 알파벳변경

č c=
ć c-
dz=
đ d-
lj lj
nj nj
š s=
ž z=

예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.

입력

첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

출력

입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

 

 

풀이

a = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
b = input()
for i in a:
    b = b.replace(i, 'a')
print(len(b))

 

-리스트에 크로아티아 문자를 미리 입력받고 for문 돌려서 replace함수로 크로아티아 지정 문자를 찾으면 그 문자를 'a'로 바꿔준 후 입력한 b의 길이를 찾아주면 된다.

 

사용된 개념

 

리스트

odd=[1,3,5,7,9]

 

*궁금증1: 리스트랑 C 배열이랑 뭐가 다르지?

리스트는 동적 할당, 배열은 정적 할당!

일반적으로 파이썬에서는 array를 지원하지 않고 이를 쓰기 위해 NumPy를 사용하는 것 같다.

[NumPy] 넘파이란? List와 Array의 차이점, 넘파이 계산이 빠른이유 (tistory.com)

 

[NumPy] 넘파이란? List와 Array의 차이점, 넘파이 계산이 빠른이유

• Numpy 란? NumPy는 Python의 과학 컴퓨팅을 위한 기본 패키지로 Python 라이브러리를 import하여 사용 가능합니다. • NumPy 배열과 표준 Python 시퀀스 간의 차이점 List와 Array의 차이점 일반적으로 Python..

chancoding.tistory.com

 

replace 함수

 

파이썬 replace( ) 문자열을 변경하는 함수 (Python) (tistory.com)

 

파이썬 replace( ) 문자열을 변경하는 함수 (Python)

replace( ) - 순서 - 1. replace 함수에 대한 설명 2. 함수 사용예시 1. replace 함수에 대한 설명 replace는 문자열을 변경하는 함수이다. 문자열 안에서 특정 문자를 새로운 문자로 변경하는 기능을 가지고

ooyoung.tistory.com

 

복기

replace함수를 찾아봤지만 그래서 뭐? 라는 생각이 들었다. replace가 특정 지정 문자를 다른 글자로 바꿀 수 있고 횟수도 지정할 수 있다는 걸 알았는데 그래도 이 문제에 어떻게 적용해야할지 감이 안왔다. 나는 다른 글자로 바꾸는 기능을 원하는게 아니라 해당 글자를 찾아서 카운팅하는 걸 원해!에 꽂혔는데 그럼 카운팅은 어떻게 할건데?라는 어려움에 부딪혔다. 그래서 빠르게 답안을 봤는데 특정 문자로 바꿔준 뒤 전체 카운팅 할 어떻게 보면 단순한 생각을 하지 못했다..

댓글