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 |
Tags
- memory
- 분할메모리할당
- 알고리즘
- OS
- error
- 일상
- 협업
- C++
- codeup
- react-redux
- 프로그래머스
- 정렬
- js to ts
- 백준
- Spring
- react
- 리덕스장바구니
- 자료구조
- web
- 코드업
- Operating System
- 공부
- 파이썬
- Java
- 토이프로젝트
- 기초100제
- CPU 스케줄링
- 스프링
- 타입스크립트
- Redux
Archives
- Today
- Total
감자튀김 공장🍟
[백준/2941] 크로아티아 알파벳 (with 파이썬) 본문
반응형
✔ 문제
✔ 풀이
😥 틀린 코드
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
s = input()
count = 0
for i in croatia:
if s.find(i) != -1:
count += 1
s = s.replace(i, '')
count += len(s)
print(count)
find 함수를 써서 croatia 알파벳이 있다면 count 숫자를 +1 한 후 해당 알파벳을 ''으로 대체해서 없애버렸다.
그리고 남는 s의 길이를 구해 count에 더하는 방법으로 구현했다. 이렇게 했더니 예제는 다 맞게 나오는데 내가 모르는 예제에서 틀리는 것 같다.
대충 감이 오는게 만약 'c=nd-jk' 이런 문자열이 온다면
1. c= 제거 후 'nd-jk'가 남는다 (count += 1)
2. d- 제거 후 'njk'가 남는다 (count +=1 )
⭕ 크로아티아 알파벳이 다 사라졌으므로 n, j, k의 len인 3이 더해져 count = 5를 출력해야 한다.
❌ 2번 과정 후 'njk'가 남게 되는데 이를 nj / k로 받아들여 count = 5가 아닌 4가 출력된다.
👽 수정 코드
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
s = input()
for i in croatia:
s = s.replace(i, '*')
print(len(s))
replace 함수에서 ''로 대체하지 말고 'a'나 '*' 등의 문자로 대체해 대체된 s의 총 길이를 구하면 된다.
✔ 후기
수정 코드가 더 짧고 간단한데 왜 돌아갔는지...
99일 블로그 챌린지 중이었는데 어제 티스토리에 안들어와져서 하루 빼먹었다😥
아쉽지만 조금 짜릿했다네요
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[백준/1712] 손익분기점 (with 파이썬) (0) | 2022.10.19 |
---|---|
[백준/1316] 그룹 단어 체커 (with 파이썬) (0) | 2022.10.18 |
[백준/5622] 다이얼 (with 파이썬) (0) | 2022.10.15 |
[백준/2908] 상수 (with 파이썬) (0) | 2022.10.14 |
[백준/1152] 단어의 개수 (with 파이썬) (0) | 2022.10.13 |
Comments