코드
def solution(s):
ndict = {'zero':'0', 'one':'1', 'two':'2', 'three':'3','four':'4',
'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'}
for i in ndict:
if i in s:
s = s.replace(i, ndict[i])
return int(s)
문자열과 숫자가 섞여있는 s가 주어지면 숫자로 바꾸는 문제이다.
s="one4seveneight"이면 1478로 바꾸면 된다.
딕셔너리를 사용해서 해결하였다.
{'영어' : 숫자} 형식으로 담겨있는 ndict이라는 이름의 딕셔너리를 만들어 ndict의 key가 s에 존재하는지 판별하였다.
위 코드처럼 딕셔너리를 for문에 사용하면 i는 딕셔너리에서 key값을 가지고 온다.
해당 key값이 s에 있으면 key에 해당하는 value를 찾아 대체한다.
s.replace(i, ndict[i])로 했더니 처음에 주어지는 s가 그대로 출력되어서, s=s.replace(i, ndict[i])로 바꿔주니 원하는 결과가 출력되었다.
결과는 정수형으로 리턴해야 하기 때문에 문자열 s를 정수형으로 바꿔 int(s)로 리턴해주었다.
쉬운 문제이지만 카카오 문제를 내가 해결할 수 있다는 점에서 코드를 남겨두고 싶은 마음이다.
반응형