반응형
오랜만에 백준의 코딩 문제 중 2941번을 풀어봤다.
https://www.acmicpc.net/problem/2941
문제
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없어서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.
예를 들어, 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)
코드해석
- 사용자한테 문자열 입력을 받아 p_input에 저장
- 크로아티아 알파벳은 따로 구별하기 위해 cro라는 리스트를 만들어 저장
- 알파벳 갯수 샐 변수 alpha_count 선언
- cro 리스트 만큼 반복문 실행 : 크로아티아 문자열을 리스트 순서대로 확인해서 공백으로 만들고 알파뱃 갯수를 증가하기 위해서임
- replace 함수를 사용해서, 크로아티아 문자열이 있는경우 값을 없애고, 문자 숫자를 1증가
- len 함수를 사용해 크로아티아 알파뱃 갯수와 크로아티아 알파뱃 갯수를 제외한 문자 갯수를 더함
- 출력
반응형
'Develop > Backend' 카테고리의 다른 글
Given-When-Then Pattern? (0) | 2023.05.29 |
---|---|
객체지향 : 상속성, 은닉성, 다형성 이란? (0) | 2023.05.01 |
백준 - ruby 연습(2739번, 2741번, 2439번, 10818번, 1978번) (0) | 2021.12.15 |
백준 - ruby 연습(10718번, 1000번, 1330번, 2753번) (0) | 2021.12.15 |
[JSP] 로그인 페이지 구현 (0) | 2020.11.05 |