"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


[코딩테스트] 숫자 문자열과 영단어 - 프로그래머스
728x90

프로그래머스의 Lv. 1 코딩 테스트 연습문제의 파이썬 풀이 입니다.

 

숫자 문자열과 영단어 문제

문제 설명

 

제한사항

 

입출력 예 및 설명

 

 

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

 

 

숫자 문자열과 영단어 문제 풀이 아이디어

one, two와 같이 문자열로 표현한 것을 숫자 1,2로 변환해야 하는 문제 입니다. 

replace 함수를 써서 문자열을 숫자 문자로 변경한 뒤에 숫자형 자료형으로 리턴하면 됩니다.

 

숫자 문자열과 영단어 문제 풀이 코드

def solution(s):
    s=s.replace("zero", "0")
    s=s.replace("one","1")
    s= s.replace("two", "2")
    s=s.replace("three","3")
    s=s.replace("four","4")
    s=s.replace("five","5");
    s=s.replace("six", "6");
    s=s.replace("seven", "7");
    s=s.replace("eight", "8");
    s=s.replace("nine", "9");
    
    answer = int(s)

    return answer

 

함수 입력값으로 들어온 문자열을 replace를 이용해서 변환합니다. replace 함수는 문자열 내에 있는 모든 값을 바꿔주는 동작을 수행하므로 첫번째 라인이 수행되면 모든 zero의 값이 문자 0으로 바뀝니다. "nine"까지 replace 수행 후 숫자형으로 바꿔서 return 합니다.

 

for문과 딕셔너리를 사용하면 좀 더 심플하게 코드를 작성할 수 있습니다.

def solution(s):
    answer = []
    dict_num = {
        "zero":"0",
        "one":"1",
        "two":"2",
        "three":"3",
        "four":"4",
        "five":"5",
        "six":"6",
        "seven":"7",
        "eight":"8",
        "nine":"9"
    }
    
    for word in dict_num.items():
        s = s.replace(word[0], word[1])
        
    answer = int(s)
    
    return answer

key를 문자열 값으로 하고 value를 숫자값으로 한 딕셔너리를 생성합니다. 이때 value도 문자열로 넣어줘야지 마지막에 정수형으로 형변환이 정상적으로 이루어집니다. items()를 이용하여 key,value 한 쌍을 불러오고 key를 value로 바꿔주도록 replace 함수를 사용합니다.

 

이상 프로그래머스 숫자 문자열과 영단어 문제를 해결하는 방법을 알아보았습니다.

 

728x90
728x90
LIST