05의 개발 계발

[페어프로그래밍] 230518 숫자 문자열과 영단어 Lv.1 | list replace 본문

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

[페어프로그래밍] 230518 숫자 문자열과 영단어 Lv.1 | list replace

생각하는 코댕이 2023. 5. 18. 16:27
728x90

숫자 문자열과 영단어


페어프로그래밍 결과 코드

# 초기 코드
def solution(s):
    num_list= ["zero","one","two","three","four","five","six","seven","eight","nine"]
    
    for i,num in enumerate(num_list):
        if num in s:
            s = s.replace(num,str(i))
    return int(s)

+테스트용 전체 코드

더보기
import os
os.system("cls")

# https://school.programmers.co.kr/learn/courses/30/lessons/81301

# 초기
def solution(s):
    num_list= ["zero","one","two","three","four","five","six","seven","eight","nine"]
    
    for i,num in enumerate(num_list):
        if num in s:
            s = s.replace(num,str(i))
    return int(s)

# ========예제 테스트===================

s = "one4seveneight"
s1 = "23four5six7"
s2 = "2three45sixseven"
s3 = "123"

print("1478 : ",solution(s))
print("234567 : ",solution(s1))
print("234567 : ",solution(s2))
print("123 : ",solution(s3))

흠터레스팅 코드

# 1번
num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}

def solution(s):
    answer = s
    for key, value in num_dic.items():
        answer = answer.replace(key, value)
    return int(answer)

시사점 or 새로이 알게된 점

흠터레스팅 1번 코드처럼 <dict>을 활용한다면 숫자 외에 다른 문자가 key-value 형태더라도 풀이가 가능하다.
하지만 <dict>을 타이핑하기 귀찮았던 나머지 그냥 <list>를 활용하여 풀었다.
enumerate로 풀 수 있었던 것도 value값이 순차적인 숫자로 구성되었기에 가능한 풀이었다.

728x90