728x90
programmers - 숫자 문자열과 영단어 |
https://school.programmers.co.kr/learn/courses/30/lessons/81301
이전 문제와 마찬가지로 정규식을 통해서 풀이했습니다.
import re def solution(s): st = re.sub('zero','0',s) st = re.sub('one','1',st) st = re.sub('two','2',st) st = re.sub('three','3',st) st = re.sub('four','4',st) st = re.sub('five','5',st) st = re.sub('six','6',st) st = re.sub('seven','7',st) st = re.sub('eight','8',st) st = re.sub('nine','9',st) st = int(st) return st |
정규식을 쓰지않고 replace를 통해 해결할 수 도 있습니다.
import re def solution(s): if 'zero' in s: s = s.replace('zero','0') if 'one' in s: s = s.replace('one','1') if 'two' in s: s = s.replace('two','2') if 'three' in s: s = s.replace('three','3') if 'four' in s: s = s.replace('four','4') if 'five' in s: s = s.replace('five','5') if 'six' in s: s = s.replace('six','6') if 'seven' in s: s = s.replace('seven','7') if 'eight' in s: s = s.replace('eight','8') if 'nine' in s: s = s.replace('nine','9') s = int(s) return s |
위의 코드를 줄여주려면 dictionary 자료형과 반복문을 활용하면 짧게 구현할 수 있습니다.
dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"} def solution(s): for key, value in dic.items(): s = s.replace(key, value) answer = int(s) return answer |
728x90
'개인 공부 > 알고리즘 트레이닝' 카테고리의 다른 글
[python] programmers - 크레인 인형뽑기 게임 (0) | 2022.09.05 |
---|---|
[python] programmers - 키패드 누르기 (0) | 2022.09.05 |
[python] programmers - 신규 아이디 추천 (0) | 2022.09.05 |
[python] programmers - 신고 결과 받기 (0) | 2022.09.02 |
[python] BOJ 7576 토마토 (0) | 2022.07.06 |
댓글