문제) 숫자 문자열과 영단어
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
- 내 풀이
- isalpha() 함수 사용하여 숫자영단어가 만들어 질 때 숫자로 변경
def solution(s):
alpha=['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
x=''
answer = ''
for i in s:
if i.isalpha():
x+=i
if x in alpha:
answer+=str(alpha.index(x))
x=''
else:
answer+=str(i)
return int(answer)
print(solution("one4seveneight"))
#결과
1478
- 다른 사람 풀이
- enumerate(): (index, value) 튜플 형식으로 반환
def solution(s):
num=['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
answer=s
for i, letter in enumerate(num):
answer=answer.replace(letter, str(i)) #replace함수는 string으로만 변경 가능: str(i)
return int(answer)
- 다른 사람 풀이
- 딕셔너리 활용: num_dic.items()로 key, value 값 불러오기
- replace 함수 사용하여 key를 value값으로 대체
- → key로 있는 값만 변경 , 숫자는 그대로
def solution(s):
num_dic={'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4', 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'}
answer=s
for key, value in num_dic.items():
answer=answer.replace(key,value)
return int(answer)
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 1] [2021 Dev-Matching: 웹 백엔드 개발자(상반기)] 로또의 최고 순위와 최저 순위 (0) | 2022.03.27 |
|---|---|
| [프로그래머스] [Level 1] [2021 KAKAO BLIND RECRUITMENT] 신규 아이디 추천 (0) | 2022.03.27 |
| [프로그래머스] [Level 1] 없는 숫자 더하기 (0) | 2022.03.27 |
| [프로그래머스] [Level 1] [2020 카카오 인턴십] 키패드 누르기 (0) | 2022.03.23 |
| [프로그래머스] [Level 1] [2019 카카오 개발자 겨울 인턴쉽] 크레인 인형뽑기 게임 (0) | 2022.03.23 |