❓ 문제 - 2021 카카오 코딩테스트 숫자 문자열과 영단어 문제 - python 풀이법
출처
(https://programmers.co.kr/learn/courses/30/lessons/81301)
📝 문제해결법
1. 문제 해결의 핵심은 간단한 문자열 처리 문제로 파이썬을 사용하면 간단하게 처리할 수 있다.
2. 처음에 number라는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 값들의 원소로 갖는 리스트를 선언한다.
3. 문제 해결 흐름
- 처음에 s에서 문자 하나씩을 for문을 돌려가면서 확인한다.
- s문자가 숫자이면 -> isdigit()를 사용하면 숫자인지 확인이 가능 , answer에 값을 넣어준다.
- s문자가 숫자가 아니라면 word에 하나씩 문자를 넣어준다.
- 또한 word가 number 리스트에 있는 원소 중 하나와 같다면 answer에 number 리스트의 해당 값과 같은 인덱스를 넣어줌 -> 해당 리스트 원소의 숫자 영단어들의 인덱스는 해당 정수 숫자값과 같기 때문이다.
- 또한, word 값을 다시 ''으로 바꿔준다.
- 마지막에 answer은 string 이므로 정답에 맞게 int 값으로 형변환을 시켜 답을 반환한다.
💻 소스코드
number = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
def solution(s):
answer = ''
word = ''
for i in s:
if i.isdigit():
answer += i
continue
else:
word += i
if word in number:
answer += str(number.index(word))
word = ''
answer = int(answer)
return answer
'알고리즘 > 알고리즘문풀' 카테고리의 다른 글
BOJ - 상어 초등학교 21608번 (python) (0) | 2021.08.24 |
---|---|
2021 카카오 채용연계형 인턴십- 표 편집(python) (0) | 2021.07.28 |
2019 카카오 겨울 인턴십 코딩테스트 - 호텔 방 배정 건너기(python) (0) | 2021.07.15 |
2019 카카오 겨울 인턴십 코딩테스트 - 징검다리 건너기(python) (0) | 2021.07.12 |
2019 카카오 코딩테스트 - 블록게임(python) (0) | 2021.07.08 |