숫자 문자열과 영단어
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
- 1478 → "one4seveneight"
- 234567 → "23four5six7"
- 10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
코드
def solution(s):
answer = ''
eng = ['zero','one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
temp = ''
s_li = list(s)
for i in range(len(s)):
temp += s_li.pop(0)
if temp.isnumeric():
answer += str(temp)
temp = ''
elif temp in eng:
answer += str(eng.index(temp))
temp = ''
else:
continue
return int(answer)
- temp에 s의 요소들을 하나씩 추가해 숫자인지, 영문숫자인지 판별
노트
요소찾기
find(): only문자열 가능. 리스트, 튜플은 에러
index(): 문자열, 리스트, 튜플 가능.
replace 활용
def solution(s):
eng = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
answer = s
for value, key in enumerate(eng):
print(key, value)
answer = answer.replace(key, str(value))
return int(answer)
- replace(찾을 문자, 바꿀문자, 횟수)
참조
[Python] 위치(인덱스) 찾기 (find(), index())
백준 1167 트리의 지름 특정 원소가 리스트의 몇 번째 인덱스에서 등장하는지 찾아야 했다. indexOf()가 안되길래 검색해보니 indexOf()는 자바스크립트 문법이었다.. 이참에 잘 정리해두자. 위치(인덱
sxbxn.tistory.com
https://school.programmers.co.kr/learn/courses/30/lessons/81301/solution_groups?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr