728x90

# 해당 포스팅은 이제 막 알고리즘 공부를 시작한 초보 수준에서 작성했음을 이해해주시고, 비난보다는 따뜻한 조언을 부탁드립니다.


안녕하십니까, 간토끼입니다.

오늘은 프로그래머스(Programmers) 숫자 문자열과 영단어 문제에 대해 다뤄보겠습니다.

2021년 카카오 채용연계형 인턴십 문제(Lv.1 수준)입니다.

 

1. 문제 링크

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

 

프로그래머스

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

programmers.co.kr

입력으로 정수와 정수의 영어표현이 섞인 문자열이 주어지고, 이를 온전한 정수의 형태로 출력하는 문제입니다.

예를 들어 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

728x90

+ Recent posts