# 해당 포스팅은 이제 막 알고리즘 공부를 시작한 초보 수준에서 작성했음을 이해해주시고, 비난보다는 따뜻한 조언을 부탁드립니다.
안녕하십니까, 간토끼입니다.
오늘은 프로그래머스(Programmers) 숫자 문자열과 영단어 문제에 대해 다뤄보겠습니다.
2021년 카카오 채용연계형 인턴십 문제(Lv.1 수준)입니다.
1. 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/81301
입력으로 정수와 정수의 영어표현이 섞인 문자열이 주어지고, 이를 온전한 정수의 형태로 출력하는 문제입니다.
예를 들어 one4seveneight로 주어지면, 1478로 바꾸어서 출력하면 됩니다. 쉽죠?
2. 접근 방법
다음과 같이 접근하였습니다.
먼저 영단어 사전을 정의합니다. ( dic = ["zero", "one", ..., "nine"])
이때 각 영단어의 index는 해당 단어의 정수 표현이 됩니다.
사전에서 영단어를 하나씩 꺼내 주어진 입력에 들어있는지 확인합니다.
있다면 해당 영단어의 index를 replace 함수를 이용해 치환해주고, 최종적으로 변환된 문자열을 정수로 바꿔주면 끝입니다.
딕셔너리를 쓰면 더욱 간편하겠지만, 사전 정의하기가 더 귀찮아서 ... 그냥 리스트로 했습니다.
3. 코드
def solution(word):
dic = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
for i in dic:
if i in word:
idx = str(dic.index(i)) # i의 인덱스 = 치환하려는 숫자
word = word.replace(i, idx)
answer = int(word)
return answer
감사합니다.
잘 읽으셨다면 게시글 하단에 ♡(좋아요) 눌러주시면 감사하겠습니다 :)
(구독이면 더욱 좋습니다 ^_^)
* 본 블로그는 학부생이 운영하는 블로그입니다.
따라서 포스팅에 학문적 오류가 있을 수 있으며, 이를 감안해서 봐주시면 감사하겠습니다.
- 간토끼(DataLabbit)
- B.A. in Economics, Data Science at University of Seoul
'Python Programming > [Programmers] Algorithm' 카테고리의 다른 글
[프로그래머스] 신규 아이디 추천 Python 풀이 (0) | 2023.08.27 |
---|---|
[프로그래머스] 키패드 누르기 Python 풀이 (0) | 2023.08.26 |
[프로그래머스] 비밀지도 Python 풀이 (0) | 2023.08.24 |
[프로그래머스] 크레인 인형뽑기 게임 Python 풀이 (0) | 2023.08.22 |
[프로그래머스] 실패율 Python 풀이 (0) | 2023.08.22 |