영어가 싫어요
문제 설명
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다.
문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
제한사항
- numbers는 소문자로만 구성되어 있습니다.
- numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
- 1 ≤ numbers의 길이 ≤ 50
- "zero"는 numbers의 맨 앞에 올 수 없습니다.
입출력 예
numbers | result |
"onetwothreefourfivesixseveneightnine" | 123456789 |
"onefourzerosixseven" | 14067 |
입출력 예 설명
입출력 예 #1
- "onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return합니다.
입출력 예 #2
- "onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.
solution.py
def solution(numbers):
answer = {
"zero": "0", "one": "1", "two": "2", "three": "3",
"four": "4", "five": "5", "six": "6",
"seven": "7", "eight": "8", "nine": "9"
}
for i, j in answer.items():
numbers = numbers.replace(i, j)
return int(numbers)
인덱스 바꾸기
문제 설명
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 < my_string의 길이 < 100
- 0 ≤ num1, num2 < my_string의 길이
- my_string은 소문자로 이루어져 있습니다.
- num1 ≠ num2
입출력 예
my_string | num1 | num2 | result |
"hello" | 1 | 2 | "hlelo" |
"I love you" | 3 | 6 | "I l veoyou" |
입출력 예 설명
입출력 예 #1
- "hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "l"을 바꾸면 "hlelo"입니다.
입출력 예 #2
- "I love you"의 3번째 인덱스 "o"와 " "(공백)을 바꾸면 "I l veoyou"입니다.
solution.py
def solution(my_string, num1, num2):
answer = list(my_string)
answer[num1], answer[num2] = answer[num2], answer[num1]
return ''.join(answer)
한 번만 등장한 문자
문제 설명
문자열 s가 매개변수로 주어집니다.
s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
제한사항
- 0 < s의 길이 < 1,000
- s는 소문자로만 이루어져 있습니다.
입출력 예
s | result |
"abcabcadc" | "d" |
"abdc" | "abcd" |
"hello" | "eho" |
입출력 예 설명
입출력 예 #1
- "abcabcadc"에서 하나만 등장하는 문자는 "d"입니다.
입출력 예 #2
- "abdc"에서 모든 문자가 한 번씩 등장하므로 사전 순으로 정렬한 "abcd"를 return 합니다.
입출력 예 #3
- "hello"에서 한 번씩 등장한 문자는 "heo"이고 이를 사전 순으로 정렬한 "eho"를 return 합니다.
solution.py
def solution(s):
answer = {}
for i in s:
if i in answer:
answer[i] += 1
else:
answer[i] = 1
temp = [m for m, n in answer.items() if n == 1]
temp.sort()
return ''.join(temp)
# 성능 O(n log n)
def solution(s):
return ''.join(sorted([i for i in s if s.count(i) == 1]))
# 성능 O(n^2)
약수 구하기
문제 설명
정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10,000
입출력 예
n | result |
24 | [1, 2, 3, 4, 6, 8, 12, 24] |
29 | [1, 29] |
입출력 예 설명
입출력 예 #1
- 24의 약수를 오름차순으로 담은 배열 [1, 2, 3, 4, 6, 8, 12, 24]를 return합니다.
입출력 예 #2
- 29의 약수를 오름차순으로 담은 배열 [1, 29]를 return합니다.
solution.py
def solution(n):
answer = []
for i in range(1, int(n ** 0.5) + 1):
if n % i == 0:
answer.append(i)
if i != n // i:
answer.append(n // i)
return sorted(answer)
def solution(n):
answer = []
for i in range(1, n + 1):
if n % i == 0:
answer.append(i)
return sorted(answer)
'코딩테스트' 카테고리의 다른 글
프로그래머스 입문 Day 17 파이썬 (0) | 2025.05.13 |
---|---|
프로그래머스 입문 Day 16 파이썬 (0) | 2025.05.12 |
프로그래머스 입문 Day 14 파이썬 (0) | 2025.05.10 |
프로그래머스 입문 Day 13 파이썬 (0) | 2025.05.09 |
프로그래머스 입문 Day 12 파이썬 (1) | 2025.05.08 |