
[ 코딩 테스트 연습 ] 161. 배열 만들기 5 문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다. 배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요. 제한사항 : 0 ≤ s < 100 1 ≤ l ≤ 8 10l - 1 ≤ k < 10l 1 ≤ intStrs의 길이 ≤ 10,000 s + l ≤ intStrs의 원소의 길이 ≤ 120 내가 푼 풀이 def solution(intStrs, k, s, a): result = [] for x in intStrs: i = x[s:s+a..

[ 코딩 테스트 연습 ] 151. 문자열 섞기 길이가 같은 두 문자열 str1과 str2가 주어집니다. 두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요. 제한사항 : 1 ≤ str1의 길이 = str2의 길이 ≤ 10 str1과 str2는 알파벳 소문자로 이루어진 문자열입니다. 내가 푼 풀이 def solution(str1, str2): return ''.join([c1 + c2 for c1, c2 in zip(str1, str2)]) + str1[len(str2):] + str2[len(str1):] print(solution('aaaaa','bbbbb')) # 출력: ababababab 다른 사람의 풀이 de..

[ 코딩 테스트 연습 ] 141. 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 : N의 범위 : 100,000,000 이하의 자연수 내가 푼 풀이 def solution(n): return sum(int(i) for i in str(n)) print(solution(123)) # 출력 : 6 142. 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한사항 : n은 0 이상 3000이하인 정수입니다. 내가 푼 풀이 def solution(n): n_sum = 0 for i in ..
[ 코딩 테스트 연습 ] 131. 9로 나눈 나머지 음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다. 이 사실을 이용하여 음이 아닌 정수가 문자열 number로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요. 제한사항 : 1 ≤ number의 길이 ≤ 100,000 number의 원소는 숫자로만 이루어져 있습니다. number는 정수 0이 아니라면 숫자 '0'으로 시작하지 않습니다. 내가 푼 풀이 def solution(number): digits = sum([int(i) for i in str(number)]) return digits % 9 print(solution("78720646..

[ 코딩 테스트 연습 ] 121. 간단한 식 계산하기 문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요. 제한사항 : 0 ≤ a, b ≤ 40,000 0을 제외하고 a, b는 0으로 시작하지 않습니다. 내가 푼 풀이 def solution(binomial): a, op, b = binomial.split() # 숫자와 연산자 분리 a, b = int(a), int(b) if op == '+': return a + b elif op == '-': return a - b elif op == '*': r..

[ 코딩 테스트 연습 ] 111. 최댓값 만들기 (2) 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요. 제한사항 : -10,000 ≤ numbers의 원소 ≤ 10,000 2 ≤ numbers 의 길이 ≤ 100 내가 푼 풀이 def solution(numbers): numbers.sort() return max(numbers[-1] * numbers[-2], numbers[0] * numbers[1]) print(solution([1, 2, -3, 4, -5])) # 출력 : 15 다른 사람의 풀이 def solution(numbers): answer = -100000000 for i..
[ 코딩 테스트 연습 ] 101. 배열의 원소 삭제하기 정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항 : 1 ≤ arr의 길이 ≤ 100 1 ≤ arr의 원소 ≤ 1,000 arr의 원소는 모두 서로 다릅니다. 1 ≤ delete_list의 길이 ≤ 100 1 ≤ delete_list의 원소 ≤ 1,000 delete_list의 원소는 모두 서로 다릅니다. 내가 푼 풀이 def solution(arr, delete_list): return [i for i in arr if i not in delete_list] p..
[ 코딩 테스트 연습 ] 91. 개미 군단 개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요. 제한사항 : hp는 자연수입니다. 0 ≤ hp ≤ 1000 내가 푼 풀이 def solution(hp): X..
[ 코딩 테스트 연습 ] 81. 공백으로 구분하기 1 단어가 공백 한 개로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항 : my_string은 영소문자와 공백으로만 이루어져 있습니다. 1 ≤ my_string의 길이 ≤ 1,000 my_string의 맨 앞과 맨 뒤에 글자는 공백이 아닙니다. 내가 푼 풀이 def solution(my_string): return my_string.split() print(solution("i love you")) # 출력 : ['i', 'love', 'you'] 다른 사람의 풀이도 비슷함 82. 암호 해독 군 전략가..
[ 코딩 테스트 연습 ] 71. 마지막 두 원소 정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요. 제한사항 : 2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 내가 푼 풀이 def solution(num_list): result = [] if num_list[-1] > num_list[-2]: return result.append(num_list[-1] - num_list[-2]) else: return result.append(num_list[-1] * 2) ??? 왜 안나올까 ..