내일배움캠프 AI/페어프로그래밍

[페어프로그래밍] 230428 옹알이(1) | count

생각하는 코댕이 2023. 4. 28. 22:29
728x90

옹알이(1)


페어프로그래밍 결과 코드

# 페어프로그래밍으로 제작한 코드

def solution(babbling):
    baby = ["aya", "ye", "woo", "ma"]
    # <1> babbling의 요소를 따로 분리
    # <2> 요소에서 발음가능한 소리가 있는지 카운트!
    # <3> 카운트한 소리의 총 길이와 요소의 길이가 일치한다면 발음가능 소리!
    result = 0
    for babble in babbling: #<1>
        babble_count = 0
        for i in range(len(baby)):
            babble_count += len(baby[i])*babble.count(baby[i]) #<2>
        if babble_count == len(babble): #<3>
            result +=1
    return result
더보기
# 페어프로그래밍으로 제작한 코드

import os
os.system("cls")

def solution(babbling):
    baby = ["aya", "ye", "woo", "ma"]
    # <1> babbling의 요소를 따로 분리
    # <2> 요소에서 발음가능한 소리가 있는지 카운트!
    # <3> 카운트한 소리의 총 길이와 요소의 길이가 일치한다면 발음가능 소리!
    result = 0
    for babble in babbling: #<1>
        babble_count = 0
        for i in range(len(baby)):
            a=babble.count(baby[i]) #<2>
            print("a",a)
            babble_count += len(baby[i])*a
        print(f"계산길이{babble_count}| 단어길이{len(babble)}")
        if babble_count == len(babble): #<3>
            result +=1
            print(f"일치 | 총 가능발음{result}")
    return result

# =========테스트공간=============
babbling1 = ["aya", "yee", "u", "maa", "wyeoo"] #1
babbling2 = ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] #3
print("1 : ",solution(babbling1))
print("\n")
print("3 : ",solution(babbling2))

리팩토링 코드

# 팀원이 제작한 다른 코드 | str 요소를 str하나하나의 단위로 분리하고 쌓아가며 비교,리셋하였다. 신박한 접근이다

    # <1> babbling의 요소를 따로 분리
    # <2> 요소에서 발음가능한 소리가 있다면 제거하기
    # <3> 남은 요소가 ""이라면 발음가능 소리!

def solution(babbling):
    result = 0
    for i in babbling:
        count = 0
        aa = ""
        bb = ["aya", "ye", "woo", "ma"]
        for a in i:
            aa += a
            # 하나씩 더해보면 그럴 일은 없지 않을까
            if aa in bb:
                # 옹알이에 적합한 단어가 완성될 경우!
                aa = ''
                # 끝날 때 기준으로 얘가 빈 str이어야 한다.
                count += 1
                # 얘는 0보다 커야 한다.
        if len(aa) == 0 and count > 0:
            result += 1
    return result
더보기
# 팀원이 제작한 다른 코드 | 로직은 같지만 매개변수를 생략하고, data type 변환없이 연산하였다.

import os
os.system("cls")

    # <1> babbling의 요소를 따로 분리
    # <2> 요소에서 발음가능한 소리가 있다면 제거하기
    # <3> 남은 요소가 ""이라면 발음가능 소리!

def solution(babbling):
    result = 0
    for i in babbling:
        count = 0
        aa = ""
        bb = ["aya", "ye", "woo", "ma"]
        for a in i:
            aa += a
            # 하나씩 더해보면 그럴 일은 없지 않을까
            if aa in bb:
                # 옹알이에 적합한 단어가 완성될 경우!
                aa = ''
                # 끝날 때 기준으로 얘가 빈 str이어야 한다.
                count += 1
                # 얘는 0보다 커야 한다.
        if len(aa) == 0 and count > 0:
            result += 1
    return result

# =========테스트공간=============
babbling1 = ["aya", "yee", "u", "maa", "wyeoo"] #1
babbling2 = ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] #3
print("1 : ",solution(babbling1))
print("\n")
print("3 : ",solution(babbling2))

시사점 or 새로이 알게된 점

str을 하나하나로 쪼개서 판별하는 것은 생각지 못한 발상이었다.
시야가 넓혀진 것 같다.

728x90