예지의 테크 로그포스 (Yeji's Tech Log Force)
[Programmers][Python] 옹알이(1) 본문
- 처음에 생각한 풀이
1. 발음 가능한 단어와 완전 일치한 입력단어가 있나?
--> 바로 answer에 1을 추가하고 continue.
2. 일치하지는 않는다면 발음 가능한지(가능한 것들로 이뤄졌는지) 체크
--> 발음 가능한 단어를 하나씩 꺼내어 입력단어에 포함되었는지 확인,
있다면 1회 제거(문자열에서 최대 1번만 등장한다는 조건 때문)
replace사용
2-2. 한 입력단어에 대해 모든 '발음가능단어'를 포함 확인&제거 했을 때,
문자열이 비어서 ' ' 이면 발음 가능한 단어이므로 answer에 1을 추가
able = {"aya", "ye", "woo", "ma"}
def solution(babbling):
answer = 0
for word in babbling:
if word in able:
answer+=1
continue
for item in able:
if item in word: word= word.replace(item, '', 1)
if word=='':
answer+=1
return answer
테스트케이스는 통과했는데, 결과는 틀림!
- 문제점
wyeoo 라는 단어를 예로 들었을때, ye가 있으니 먼저 삭제하면 남은 단어는 woo라는 단어로 바뀜.
w와 oo는 발음이 불가하지만, ye의삭제로 인해 바뀐 단어 woo는 발음 가능하다고 인식해버림.
--> 단어를 바로 ' '로 제거하지않고, '.'이나 '?' 등을 추가한후 나머지 단어들도 다 체크.
이후에 '.'이나 '?' 등 대체했던 문자를 모두 삭제한 후 최종 결과확인
able = {"aya", "ye", "woo", "ma"}
def solution(babbling):
answer = 0
for word in babbling:
if word in able:
answer+=1
continue
for item in able:
if item in word: word = word.replace(item, '.', 1)
word = word.replace('.', '')
if word=='':
answer+=1
return answer
'CS > Algorithm & Data Structure' 카테고리의 다른 글
[Programmers][Python] 주사위 게임 3 (2) | 2023.09.09 |
---|---|
[BOJ] 1302 베스트셀러 (0) | 2023.07.23 |
[BOJ][Python]2748 피보나치 수2 (0) | 2023.05.10 |
[BOJ][Python] 백준 1475 방 번호 (0) | 2023.03.09 |
유클리드 호제법(최대공약수 재귀로 구하기) (0) | 2023.02.21 |
Comments