Algorithm/[Python] Programmers
[Python] 숫자 문자열과 영단어
내일은개발천재🎵
2021. 12. 23. 20:16
문제를 보시려면 클릭하세요
더보기
문제 설명
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. |
제한 사항
제한사항
|
입출력 예
s | result "one4seveneight" | 1478 "23four5six7" | 234567 "2three45sixseven" | 234567 "123" | 123 입출력 예 설명입출력 예 #1
|
나의 코드
nums = ["zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine"]
def solution(s):
for num in range(len(nums)):
s = s.replace(nums[num], str(num))
return int(s)
문제 설명
1) 기본 설명
- 프로그래머스에서 제공하는 기본 함수는 다음과 같습니다.
def solution(s):
answer = 0
return answer
=> 매개변수 s에 "one4seveneight" 이런 값이 들어오고, answer에 계산 값 1478을 넣어서 반환하도록 작성해야합니다.
2) 문제 다가가기
(1) zero one two three four five six seven eight nine를 리스트에 담는다.
(2) 문자열을 찾아 저장된 인덱스를 반환해서 저장한다. (0부터 시작하기 때문에 인덱스와 값이 동일합니다)
3) 코드 설명
nums = ["zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine"]
각 번호가 저장되어있는 리스트 nums을 선언합니다. (1)번 과정
for num in range(len(nums)):
s = s.replace(nums[num], str(num))
nums를 하나씩 탐색하고, s에 만약 해당 원소가 존재하면 인덱스와 바꾼다. (replace 함수 사용) (2)번과정
for에서 range(len(nums)를 사용한 이유가 인덱스로 접근하기 위해서입니다!!!!!!!! 끗
(dictionary를 사용해도 깔끔하게 코드를 작성할 수 있습니다. 저는 인덱스로 해결 방법을 찾을 수 있다고 생각해서 단순 리스트를 사용했어요)
➕제 깃허브 들어오시면, 설명은 없지만 다른 문제들의 코드를 볼 수 있습니다.
GitHub - JIWON1923/Algorithm: studying algorithm with python
studying algorithm with python. Contribute to JIWON1923/Algorithm development by creating an account on GitHub.
github.com