level1_숫자 문자열과 단어

2024. 6. 20. 23:32파이썬_알고리즘(코딩테스트)/level1

 

내가 제출한 코드

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))
            word = word.replace(i, idx)
    answer = int(word)
        
    return answer

 

  • dic 리스트는 영어 숫자 단어를 저장한 목록이다. 각 인덱스는 해당 단어의 숫자 값을 나타낸다.
    • dic[0] = "zero"이다.
  • for i in dic: dic 리스트의 각 요소(숫자 단어)를 순회한다.
  • if i in word: 현재 숫자 단어 i가 입력 문자열 word에 포함되어 있는지 확인한다.
  • idx = str(dic.index(i)): 숫자 단어 i의 인덱스를 찾아 문자열로 변환하여 idx에 저장한다.
  • word = word.replace(i, idx): word 문자열에서 숫자 단어 i를 해당 숫자 값 idx로 대체한다.
  • 숫자 값으로 변환된 문자열 word를 정수로 변환하여 answer에 저장한 후 변환된 정수 answer를 반환한다.

 

 

 

 

다른 사람이 제출한 코드

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_dic 딕셔너리에 영어 숫자 단어를 해당 숫자 값 문자열로 매핑한다.
  • 입력 문자열 s를 answer에 할당한다. answer는 변환된 문자열을 저장할 변수이다.
  • for key, value in num_dic.items() : num_dic 사전의 각 항목을 순회한. key는 숫자 단어이고 value는 해당 숫자 값이다.
    • num_dic.items() : 딕셔너리의 키-값 쌍을 튜플 형태로 반환하는 메서드이다. 
      • ("zero", "0")
      • ("one", "1")
  • answer = answer.replace(key, value): 현재 key (숫자 단어)를 value (숫자 값)으로 answer 문자열에서 대체한다.
  • 변환된 문자열 answer를 정수로 변환하여 반환한다.

 

 

 

 

TISTORY 참고한 코드

def solution(s):
    nums = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
    for i, a in enumerate(nums) :
        s = s.replace(a, str(i))
    
    return int(s)

 

위 코드와 다르게 딕셔너리를 쓰지 않고 영어 숫자 단어를 저장한  리스트로 나타냈다.

  • enumerate(nums)는 nums 리스트의 각 요소와 해당 요소의 인덱스를 반환한다. i는 인덱스이고 a는 해당 인덱스의 숫자 단어이다.
  • s.replace(a, str(i))는 문자열 s에서 숫자 단어 a를 해당 숫자 값인 str(i)로 대체한다. 이 작업은 리스트 nums의 모든 숫자 단어에 대해 반복된다.
  • 변환된 문자열 s를 정수로 변환하여 반환한다.

'파이썬_알고리즘(코딩테스트) > level1' 카테고리의 다른 글

level1_원소들의 곱과 합  (0) 2024.06.24
level1_홀짝에 따라 다른 값 반환하기  (0) 2024.06.24
level1_시저암호  (0) 2024.03.05
level1_최소직사각형  (0) 2024.02.29
level1_삼총사  (0) 2024.02.26