티스토리 뷰
728x90
[ 코딩 테스트 연습 ]
21. 특정 문자 제거하기
- 문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
- 제한사항
- 1 ≤ my_string의 길이 ≤ 100
- letter은 길이가 1인 영문자입니다.
- my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
- 대문자와 소문자를 구분합니다.
- 내가 푼 풀이
def solution(my_string, letter):
a = my_string.split(letter)
return ''.join(a)
result = solution("abcdef", "f")
print(result) #출력 : abcde
- 다른 사람의 풀이
def solution(my_string, letter):
return my_string.replace(letter, '')
result = solution("abcdef", "f")
print(result) #출력 : abcde
- replace() 메서드는 문자열 안에 있는 모든 특정 문자를 다른 문자로 대체한다. 특정 문자를 제거하려면 빈 문자열로 대체하면 된다.
def solution(my_string, letter):
answer = ''
for i in my_string:
if i != letter:
answer += i
return answer
result = solution("abcdef", "f")
print(result) #출력 : abcde
def solution(my_string, letter):
return "".join([s for s in my_string if s != letter])
result = solution("abcdef", "f")
print(result) #출력 : abcde
📌 remove 함수는 숫자에만 적용되고 문자열에는 적용되지 않는다. : 회의하여 조원분이 알려줌!ㅎㅎ
22. 아이스 아메리카노
- 머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
- 제한사항 : 0 < money ≤ 1,000,000
- 내가 푼 풀이
def solution(money):
americano_price = 5500
cups = money // americano_price # //나누기 정수값
Changes = money - (cups * americano_price)
return [cups, Changes]
result = solution(15000)
print(result) #출력 : [2, 4000]
- 다른 사람의 풀이
def solution(money):
return [money // 5500, money % 5500] # %는 나눈 나머지값
result = solution(15000)
print(result) #출력 : [2, 4000]
23. 피자 나눠 먹기 (1)
- 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
- 제한사항 : 0 < money ≤ 100
- 내가 푼 풀이
def solution(n):
i = n / 7
if i != int(i):
return int(i) + 1
else:
return i
result = solution(15)
print(result) #출력 : 3
- 다른 사람의 풀이
def solution(n):
answer = n//7
if n%7 != 0:
answer +=1
return answer
def solution(n):
answer = 0
if (n%7) == 0:
answer = int(n/7)
else:
answer = int(n/7)+1
return answer
def solution(n):
answer = n // 7 + (n % 7 > 0) #
return answer
def solution(n):
return (n - 1) // 7 + 1
24. 피자 나눠 먹기 (2)
- 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
- 제한사항 :
- 2 ≤ slice ≤ 10
- 1 ≤ n ≤ 100
- 내가 푼 풀이
def solution(slice, n):
i = n / slice
if i != int(i):
return int(i) + 1
else:
return i
result = solution(4, 12)
print(result) #출력 3
- 다른 사람의 풀이
def solution(slice, n):
return ((n - 1) // slice) + 1 # n-1//slice<1일 때 결과값이 0이 되는걸 방지
result = solution(4, 12)
print(result) #출력 : 3
25. 최대값 만들기
- 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
- 제한사항 :
- 0 ≤ numbers의 원소 ≤ 10,000
- 2 ≤ numbers의 길이 ≤ 100
- 내가 푼 풀이
def solution(numbers):
max_1 = max(numbers)
numbers.remove(max_1)
max_2 = max(numbers)
return max_1 * max_2
numbers = [1,2,3,4,5]
result = solution(numbers)
print(result) #출력 20
- 다른 사람의 풀이
def solution(numbers):
numbers.sort()
return numbers[-2] * numbers[-1]
numbers = [1,2,3,4,5]
result = solution(numbers)
print(result) #출력 20
- numbers.sort()는 리스트 numbers의 원소들을 오름차순으로 정렬한다. 정렬된 리스트에서 마지막 두 개의 원소를 곱하여 반환하는 코드인 numbers[-2] * numbers[-1]에서 numbers[-2]는 두 번째로 큰 원소를, numbers[-1]는 가장 큰 원소를 의미함
26. 배열 두 배 만들기
- 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
- 제한사항 :
- -10,000 ≤ numbers의 원소 ≤ 10,000
- 1 ≤ numbers의 길이 ≤ 1,000
- 내가 푼 풀이
def solution(numbers):
return [i * 2 for i in numbers]
result = solution(numbers=[1,2,3,4,5])
print(result) #출력 [2, 4, 6, 8, 10]
- 다른 사람의 풀이
def solution(numbers):
return list(map(lambda x: x * 2, numbers))
27. 짝수 홀수 개 수
- 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
- 제한사항 :
- 1 ≤ num_list의 길이 ≤ 100
- 0 ≤ num_list의 원소 ≤ 1,000
- 내가 푼 풀이
def solution(num_list):
even = 0
odd = 0
for num in num_list:
if num % 2 == 0:
even +=1
else:
odd +=1
return [even, odd]
result = solution(num_list=[1,2,3,4,5])
print(result) #출력 : [2, 3]
- 다른 사람의 풀이
def solution(num_list):
answer = [0,0]
for n in num_list:
answer[n%2]+=1
return answer
result = solution(num_list=[1,2,3,4,5])
print(result) #출력 : [2, 3]
-
answer는 리스트 형태의 변수로, 그 내부에는 두 개의 정수가 들어가 있습니다. 이 리스트의 첫 번째 요소는 홀수의 개수를 나타내고, 두 번째 요소는 짝수의 개수를 나타낸다. 이때 n을 2로 나눈 나머지가 0이라면, 이는 n이 짝수임을 의미해 answer[1]에 1을 더해준다. 반대로, n을 2로 나눈 나머지가 1이라면, 이는 n이 홀수임을 의미해 answer[0]에 1을 더해준다.
28. 자릿수 더하기
- 정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
- 제한사항 : 0 ≤ n ≤ 1,000,000
- 내가 푼 풀이
def solution(n):
i = str(n) #문자로 변환
num = 0
for a in i:
num += int(a) #다시 숫자로 변환하여 합한다
return num
result = solution(1234)
print(result) #출력 : 10
- 다른 사람의 풀이
def solution(n):
return sum(int(i) for i in str(n))
result = solution(1234)
print(result) #출력 : 10
29. 배열의 유사도
- 두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.
- 제한사항 :
- 1 ≤ s1, s2의 길이 ≤ 100
- 1 ≤ s1, s2의 원소의 길이 ≤ 10
- s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
- s1과 s2는 각각 중복된 원소를 갖지 않습니다.
- 내가 푼 풀이
def solution(s1, s2):
answer = 0
for i in s1:
if i in s2:
answer += 1
return answer
result = solution(['a','b','c'],['com', "b", "d", "p", "c"])
print(result) #출력 : 2
- 다른 사람의 풀이
def solution(s1, s2):
return len(set(s1)&set(s2));
result = solution(['a','b','c'],['com', "b", "d", "p", "c"])
print(result) #출력 : 2
- set() 함수는 중복된 요소를 제거하고 유일한 요소만 남긴 집합(set)리스트 생성한다. ' & ' 연산자를 사용하여 두 집합의 교집합을 구하고, len() 함수로 그 교집합의 길이(즉, 공통된 문자의 개수)를 반환한다.
30. 양꼬치
- 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
- 제한사항 :
- 0 < n < 1,000
- n / 10 ≤ k < 1,000
- 서비스로 받은 음료수는 모두 마십니다.
- 내가 푼 풀이
def solution(n, k):
# 10인분 먹으면 음료수 1개 서비스
return (n * 12000) + (k * 2000) - (n//10 *2000) # n//10은 정수
result = solution(10, 3)
# 양꼬치 n 인분, 음료수 k 개
print(result) #출력 : 124,000
- 다른 사람의 풀이도 비슷함
반응형
'AI웹 개발자 과정 공부 (팀스파르타) > 코딩테스트 연습' 카테고리의 다른 글
24.03.12_TIL (알고리즘 예제 51-55) (0) | 2024.03.12 |
---|---|
24.03.08_TIL (알고리즘 예제 41-50) (0) | 2024.03.08 |
24.03.07_TIL (알고리즘 예제 31-40) (0) | 2024.03.07 |
24.03.05_TIL (알고리즘 예제 11-20) (0) | 2024.03.05 |
24.03.04_TIL (알고리즘 예제 1-10) (0) | 2024.03.04 |