문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/81301
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 입력으로 아래와 같이 문자와 숫자가 섞인 형태로 입력이 들어옵니다.
- 우리는 입력으로 들어온 문자열을 아래 result와 같은 정수형으로 변환하여 반환해주어야 합니다.

구현과정
- 문자 : 숫자를 dict형태로 미리 저장해 두고(하드코딩)
- 문자열을 for문으로 하나씩 읽어 들여 숫자라면 바로 answer에 더해준다.
- 숫자가 아니라면 temp 문자열 변수에 값을 추가해 주고 tenp가 nums 딕셔너리에 일치하는지 확인한다.
- 일치한다면 매칭되는 숫자로 변경 일치하지 않는다면 패스
- 모든 문자열 s를 다 읽었다면 answer를 리턴한다.
def solution(s):
nums = {"zero" : 0,"one" : 1,"two" : 2 , "three" : 3, "four":4,"five":5,"six":6,"seven" : 7,"eight":8,"nine":9}
answer = ""
temp = ""
for i in s:
if i in ['0','1','2','3','4','5','6','7','8','9']:
answer +=i
else:
temp +=i
if temp in nums:
answer += str(nums[temp])
temp = ""
return int(answer)
다른 사람의 풀이
def solution(s):
nums = {
'zero': '0', 'one': '1', 'two': '2',
'three': '3', 'four': '4', 'five': '5',
'six': '6', 'seven': '7', 'eight': '8', 'nine': '9'
}
for n in nums:
s = s.replace(n, nums[n])
return int(s)
- 이분의 풀이의 경우 딕셔너리로 하드코딩한 파트는 같았으나
- replace함수를 사용하여 이후 처리를 간단히 하셨습니다.
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 전력망을 둘로 나누기 - python[DFS, 위상정렬] (1) | 2023.07.29 |
---|---|
[프로그래머스] 피로도 - python[DFS] (3) | 2023.07.27 |
[프로그래머스] 신고 결과 받기 - python[Hashing] (2) | 2023.07.10 |
프로그래머스 정수 삼각형 (0) | 2023.04.10 |
프로그래머스 점프와 순간 이동 (0) | 2023.03.31 |
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/81301
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 입력으로 아래와 같이 문자와 숫자가 섞인 형태로 입력이 들어옵니다.
- 우리는 입력으로 들어온 문자열을 아래 result와 같은 정수형으로 변환하여 반환해주어야 합니다.

구현과정
- 문자 : 숫자를 dict형태로 미리 저장해 두고(하드코딩)
- 문자열을 for문으로 하나씩 읽어 들여 숫자라면 바로 answer에 더해준다.
- 숫자가 아니라면 temp 문자열 변수에 값을 추가해 주고 tenp가 nums 딕셔너리에 일치하는지 확인한다.
- 일치한다면 매칭되는 숫자로 변경 일치하지 않는다면 패스
- 모든 문자열 s를 다 읽었다면 answer를 리턴한다.
def solution(s):
nums = {"zero" : 0,"one" : 1,"two" : 2 , "three" : 3, "four":4,"five":5,"six":6,"seven" : 7,"eight":8,"nine":9}
answer = ""
temp = ""
for i in s:
if i in ['0','1','2','3','4','5','6','7','8','9']:
answer +=i
else:
temp +=i
if temp in nums:
answer += str(nums[temp])
temp = ""
return int(answer)
다른 사람의 풀이
def solution(s):
nums = {
'zero': '0', 'one': '1', 'two': '2',
'three': '3', 'four': '4', 'five': '5',
'six': '6', 'seven': '7', 'eight': '8', 'nine': '9'
}
for n in nums:
s = s.replace(n, nums[n])
return int(s)
- 이분의 풀이의 경우 딕셔너리로 하드코딩한 파트는 같았으나
- replace함수를 사용하여 이후 처리를 간단히 하셨습니다.
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 전력망을 둘로 나누기 - python[DFS, 위상정렬] (1) | 2023.07.29 |
---|---|
[프로그래머스] 피로도 - python[DFS] (3) | 2023.07.27 |
[프로그래머스] 신고 결과 받기 - python[Hashing] (2) | 2023.07.10 |
프로그래머스 정수 삼각형 (0) | 2023.04.10 |
프로그래머스 점프와 순간 이동 (0) | 2023.03.31 |