반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
'c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='
크로아티아 알파벳이 섞인 문자열의 길이를 구하는 문제입니다. 크로아티아의 알파벳은 2개 이상의 문자 조합으로 표현하며, 1개로 취급합니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
크로아티아의 문자열을 찾아내는 구현 문제입니다. 입력된 문자열을 순회하면서, 크로아티아 문자가 있는지 체크해야 합니다.
3. 코드
croatia = input()
cnt = len(croatia)
pre = '' #이전 글자
ppre = '' #이전 이전글자
for i in croatia:
if i == '-':
cnt -= 1
if i == '=':
cnt -= 1
if pre == 'z' and ppre == 'd':
cnt -= 1
if i == 'j' and (pre == 'l' or pre == 'n'):
cnt -= 1
ppre = pre
pre = i
print(cnt)
가장 직관적인 풀이방법입니다. 반복문으로 문자열을 순회하면서, 조건문으로 '크로아티아 문자열'이 있는지 체크합니다.
'-'가 들어간 'c-', 'd-'는 2글자를 1글자로 취급하므로, 전체 길이에서 1만 빼줍니다.
'='가 들어간 'dz=', 's=', 'z='는 구분이 필요합니다. 이전, 그 이전 문자를 확인해서 감별 후 빼줍니다.
'j'가 들어간 'lj', 'nj'는 2글자를 1글자로 취급하므로, 전체 길이에서 1만 빼줍니다.
cf) 다른 풀이
croatia = input()
alphabet = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
for i in alphabet:
croatia = croatia.replace(i, 'C')
print(len(croatia))
단순히 크로아티아 문자를 한 문자로 치환해주면 됩니다. 문자열 처리 함수 중 replace를 이용하면, 바꾸고 싶은 문자를 원하는 문자로 치환할 수 있습니다.
String.replace(a, b): String 내의 a문자를 b문자로 치환(찾아 바꿈)
반응형
'Algorithm' 카테고리의 다른 글
[그리디/Greedy] 백준 11047 동전 0 - Python (0) | 2022.01.31 |
---|---|
[구현/수학] 백준 1193 분수찾기 - Python (0) | 2022.01.31 |
[분할정복/DQ] 백준 2630 색종이 만들기 - Python (0) | 2022.01.29 |
[Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 (0) | 2022.01.29 |
[구현/수학] 백준 10872 팩토리얼 - Python, Java (0) | 2022.01.28 |
댓글