일일구름 IT

프로그래머스 lv.1 [숫자 문자열과 영단어] 2021 카카오 채용연계형 인턴십 본문

프로그래머스/프로그래머스 lv.1

프로그래머스 lv.1 [숫자 문자열과 영단어] 2021 카카오 채용연계형 인턴십

일구름 2022. 7. 6. 21:43

문제 설명

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.

  • 1478 → "one4seveneight"
  • 234567 → "23four5six7"
  • 10203 → "1zerotwozero3"

내 푼제 풀이:

def solution(s):
    answer = []
    num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
    while not s.isdigit():
        for i in num:
            if i in s:
                s = s.replace(i, str(num.index(i)))
    answer = s
    return answer
  • num 리스트 index를 이용하여 영어 단어를 숫자로 바꾸었습니다.
  • s.indigit()는 s에 숫자만 있을 경우 Ture를 반환 → 숫자만 남을 경우 while 종료

 

다른 사람 문제 풀이:

num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}

def solution(s):
    answer = s
    for key, value in num_dic.items():
        answer = answer.replace(key, value)
    return int(answer)
  • 딕셔너리를 사용하여 num 정의
  • .item()을 이용하면 딕셔너리의 key, value 반환 가능
  • .replace(key, value) → key값을 value값으로 바꿈, 영어 단어를 숫자로 바꿈

 

https://www.notion.so/5bc953efee3f43c99085f22fee2ac0b0

 

숫자 문자열과 영단어

문제 설명

www.notion.so