ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Programmers][Python] 옹알이(1)
    CS/Algorithm & Data Structure 2023. 5. 10. 23:00

    - 처음에 생각한  풀이

    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

     

Designed by Tistory.