본문 바로가기
Algorithm/programmers

programmers 숫자 문자열과 영단어

by 갈잃자 2022. 8. 2.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


카카오 인턴쉽 문제중 하나이다.

 

영단어를 숫자로 바꾸는 문제 ex) one4seveneight == 1478

 

문제를 보고 dict를 사용하여 풀 수도 있겠다라고 생각했는데, 그냥 난 list를 이용하여 풀었다.

def solution(s):
    answer = 0
    s=list(s)
    num = ['zero','one','two','three','four','five','six','seven','eight','nine']
    arr = [] # 문자인 경우 하나씩 받아줌
    lst = [] # 최종 결과값을 넣는 곳
    for i in range(len(s)):
        if ord('a')<=ord(s[i])<=ord('z'):
           arr.append(s[i])
           string = ''.join(arr) #arr을 문자화 시켜 num 안에 있는지 확인 시켜줌
           if string in num:
               lst.append(str(num.index(string)))
               arr = []
        else:
           lst.append(s[i])
    answer = int(''.join(lst))
    return answer

print(solution("one4seveneight"))
print(solution("23four5six7"))
print(solution("2three45sixseven"))
print(solution("123"))

 

댓글