Lv.1) 숫자 문자열과 영단어
문제 설명 📝

입출력 예시 📌
s | 결과 |
---|
"one4seveneight" | 1478 |
"23four5six7" | 234567 |
"2three45sixseven" | 234567 |
"123" | 123 |
코드 풀이 💡
def solution(s):
words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
word = ''
answer = ''
i = 0
while i < len(s):
if s[i].isdigit():
answer += s[i]
i += 1
continue
word += s[i]
if word in words:
answer += str(words.index(word))
word = ''
i += 1
return int(answer)
🔍 코드 설명
- 문자열 s를 기준으로 숫자는 바로 answer안에 넣어주고 그렇지 않으면 word 안에 넣어서 숫자 영단어가 완성되면 그 때 숫자로 바꿔주고 word는 초기화 되는 과정으로 코드를 작성하였습니다.
다른 사람의 풀이 ✨
def solution(s):
words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
for i in range(len(words)):
s = s.replace(words[i], str(i))
return int(s)
✅ 다른 풀이의 특징
s.replace()
를 활용하여 영단어를 숫자로 변환합니다.
- words 리스트를 이용하여 문자열 s 안에 존재하는 영단어가 있으면 그 단어를 숫자로 치환합니다. => 문자열이 연속적으로 연결되어 있어도 변환이 적용된다!!!
🔗 프로그래머스 문제 링크