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")
- num_dic.items() : 딕셔너리의 키-값 쌍을 튜플 형태로 반환하는 메서드이다.
- 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 |