Notice
Recent Posts
Recent Comments
반응형
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 내란죄
- dfs
- 알고리즘
- 왈왈왈
- dfs 백트래킹
- BFS
- 파비우스 전략
- 유니온 파인드
- LCA
- 민주주의
- 윤석열
- 백준
- ccw
- 비상계엄
- 구조론
- 내란수괴
- 오블완
- 프림
- 다익스트라
- 분할정복
- 이분 탐색
- 티스토리챌린지
- DP
- 내란수괴 윤석열
- Prim
- Python
- 투 포인터
- 재귀함수
- union find
- 윤석열 내란수괴
Archives
- Today
- Total
Toolofv 님의 블로그
[Python] 백준 - 2941 크로아티아 알파벳 본문
문제
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.
č | c= |
ć | c- |
dž | dz= |
đ | d- |
lj | lj |
nj | nj |
š | s= |
ž | z= |
예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.
dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.
입력
첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.
단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.
출력
입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.
문제해결방법
1. 파이썬의 replace함수를 활용할 수 있다.
def repl(word, o, n):
res = ''
i = 0
while True:
if i == len(word):
break
if word[i:i+len(o)] == o:
res += n
i += len(o)
else:
res += word[i]
i += 1
return res
- replace함수를 구현했을 때
2. 변경된 크로아티아 알파벳을 발견할 때마다 구할 길이를 +1 추가해주고, 남은 알파벳들을 최종적으로 더해준다.
- 코드
import sys
from collections import deque
sys.setrecursionlimit(10**6)
input = sys.stdin.readline
d = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
word = input().strip()
lth = 0
for i in d:
for j in range(len(word)):
if i == word[j:j+len(i)]:
lth += 1
word = word.replace(i, ' ')
word = word.replace(' ', '')
print(lth+len(word))
반응형
'Algorithm' 카테고리의 다른 글
[Python] 백준 - 10026 적록색약 (0) | 2024.12.10 |
---|---|
[Python] 백준 - 16236 아기 상어 (3) | 2024.11.29 |
[Python] 백준 - 1300 K번째 수 (0) | 2024.11.11 |
[Python] 백준 - 2110 공유기 설치 (1) | 2024.11.08 |
[Python] 백준 - 2805 나무 자르기 (0) | 2024.11.07 |