억대 연봉을 위한 인간수업
article thumbnail
반응형

오랜만에 백준의 코딩 문제 중 2941번을 풀어봤다.

 

https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 


문제

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

 

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

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

 


입력

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

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

출력

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

 


예제 입출력

예제 1

입력

ljes=njak

출력

6

lj, e, s=, nj, a, k

 

 


풀이방식

우선 크로아티아 문자를 배열에 넣고, 그 배열과 일치하면 문자수 카운트를 증가하고, 해당 문자열 값을 없앤뒤, 나머지 문자열 길이와 더하면 된다고 우선 생각했다.

 

 

 

코드

p_input = str(input())
cro = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
alpha_count = 0

print(p_input)
for i in cro:
    if i in p_input:
        alpha_count += 1
        p_input = p_input.replace(i,'')

alpha_count = alpha_count + len(p_input)

print('크로아티 문자 개수 : ', + alpha_count)

 

코드해석

 

  1. 사용자한테 문자열 입력을 받아 p_input에 저장
  2. 크로아티아 알파벳은 따로 구별하기 위해 cro라는 리스트를 만들어 저장
  3. 알파벳 갯수 샐 변수 alpha_count 선언
  4. cro 리스트 만큼 반복문 실행 : 크로아티아 문자열을 리스트 순서대로 확인해서 공백으로 만들고 알파뱃 갯수를 증가하기 위해서임
    1. replace 함수를 사용해서, 크로아티아 문자열이 있는경우 값을 없애고, 문자 숫자를 1증가
  5. len 함수를 사용해 크로아티아 알파뱃 갯수와 크로아티아 알파뱃 갯수를 제외한 문자 갯수를 더함
  6. 출력
반응형

'Develop > python' 카테고리의 다른 글

파이썬 - 별찍기  (0) 2022.07.07
Python과 DB 연동  (0) 2020.01.13
BeautifulSoup 사용법  (0) 2020.01.13
Requests 모듈 사용법  (0) 2020.01.13
[Python]모듈이란?  (0) 2020.01.07
profile

억대 연봉을 위한 인간수업

@회뜨는참치

이 글이 당신에게 조금이라도 도움이 된다면 좋겠습니다.