문제
https://school.programmers.co.kr/learn/courses/30/lessons/81301
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해설
def solution(s):
num_dict = {
'zero':'0',
'one':'1',
'two':'2',
'three':'3',
'four':'4',
'five':'5',
'six':'6',
'seven':'7',
'eight':'8',
'nine':'9'
}
answer = ''
word = ''
for elem in s:
if elem.isdecimal():
answer += elem
else:
word += elem
if word in num_dict:
answer += num_dict[word]
word = ''
return int(answer)
우선 각 문자열에 매칭되는 문자형 숫자 dictionary 자료형을 만든다.
문자열을 순회하면서 현재 문자열이 숫자형으로 변환이 가능하면 바로 answer 문자열에 추가한다. isdecimal() 사용
만약 그렇지 않으면 해당 문자열이 어떤 단어를 의미하는지 체크해야하기 때문에 word라는 변수에 넣어준다.
그리고 word라는 변수에 넣어줄 때마다 word에 일치하는 num_dict 값이 있는지 확인하여 존재하면 매칭되는 문자형 숫자를 answer에 추가하고 word 문자열을 빈값으로 초기화한다.
word 변수에 문자 추가할 때마다 num_dict에 존재하는지 확인하는 이유는 'twothree'처럼 문자열이 이어진 경우를 해결하기 위한 조건이다.
'Python' 카테고리의 다른 글
프로그래머스 - 콜라츠 추측 (2) | 2024.04.04 |
---|---|
프로그래머스 - 삼각 달팽이 (1) | 2024.04.03 |
프로그래머스 - 체육복 (0) | 2024.04.01 |
프로그래머스 - 부족한 금액 계산하기 (0) | 2024.03.31 |
프로그래머스 - 핸드폰 번호 가리기 (0) | 2024.03.28 |