1. 배열의 평균값
def solution(numbers):
answer = sum(numbers) / len(numbers)
return answer
다른 사람의 풀이
1)
import numpy as np
def solution(numbers):
return np.mean(numbers)
2)
def solution(numbers):
return sum(numbers) / len(numbers)
3)
def solution(arr):
return sum(arr)/len(arr)
4)
def solution(numbers):
answer = 0
count = len(numbers)
for i in range(count):
answer += numbers[i]
return answer/count
2. 머쓱이보다 키 큰 사람
첫번째 시도
def solution(array, height):
count = 0
for i in range(int(array)):
if i > height
count += 1
return count
오류
if i > height
^
SyntaxError: invalid syntax
두번째 시도
블로그 염탐
def solution(array, height):
answer = 0
for i in array:
if i > height:
answer += 1
return answer
나랑 똑같자나..?
똑같은 오류
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
if 문에 : 추가하고 int 없앰
def solution(array, height):
count = 0
for i in array:
if i > height:
count += 1
return count
다른 사람의 풀이
1)
def solution(array, height):
array.append(height)
array.sort(reverse=True)
return array.index(height)
2)
def solution(array, height):
return sum(1 for a in array if a > height)
3)
def solution(array, height):
return sum(map(lambda x: x > height, array))
3. 배열 원소의 길이
def solution(strlist):
answer = []
for i in strlist:
answer.append(len(i))
return answer
다른 사람의 풀이
1)
def solution(strlist):
answer = []
for i in strlist:
answer.append(len(i))
return answer
2)
def solution(strlist):
return [len(str) for str in strlist]
3)
def solution(strlist):
answer = list(map(len, strlist))
return answer
4)
def solution(strlist):
return list(map(lambda v: len(v), strlist))
4. 배열 뒤집기
def solution(num_list):
answer = num_list[::-1]
return answer
다른 사람의 풀이
1)
def solution(num_list):
result =[]
while(num_list):
result.append(num_list.pop())
return result
2)
def solution(num_list):
num_list.reverse()
return num_list
내 답이 제일 나음
5. 중복된 숫자 개수
def solution(array, n):
count = 0
for i in array:
if i == n:
count+=1
return count
한번에 풀었다!!!
다른 사람의 풀이
1)
def solution(array, n):
return array.count(n)
헐…
6. 배열 자르기
def solution(numbers, num1, num2):
return numbers[num1:(num2+1)]
7. 문자열 뒤집기
def solution(my_string):
my_string = "".join(reversed(my_string))
return my_string
다른 사람의 풀이
1) 원래 하고 싶었던거
def solution(my_string):
return my_string[::-1]
2)
def solution(my_string):
answer = ''
a = list(my_string)
a.reverse()
for i in a:
answer += i
return answer
3)
def solution(my_string):
answer = ''
for c in my_string:
answer= c+answer
return answer
8. 편지
def solution(message):
return len(message)*2
다른 사람의 풀이
1)
def solution(message):
return len(message)<<1
9. 점의 위치 구하기
def solution(dot):
if dot[0]>0 and dot[1]>0:
return 1
elif dot[0]<0 and dot[1]>0:
return 2
elif dot[0]<0 and dot[1]<0:
return 3
elif dot[0]>0 and dot[1]<0:
return 4
else: return 0
다른 사람의 풀이
1)
def solution(dot):
quad = [(3,2),(4,1)]
return quad[dot[0] > 0][dot[1] > 0]
2)
def solution(dot):
a, b = 1, 0
if dot[0]*dot[1] > 0:
b = 1
if dot[1] < 0:
a = 2
return 2*a-b
3)
def solution(dot):
return [[1, 4], [2, 3]][dot[0] < 0][dot[1] < 0]
10. 문자열안에 문자열
def solution(str1, str2):
if str2 in str1:
answer = 1
else:
answer = 2
return answer
다른 사람의 풀이
1)
def solution(str1, str2):
return 1 if str2 in str1 else 2
2)
def solution(str1, str2):
return 1 + int(str2 not in str1)
3)
def solution(str1, str2): return -~(str2 not in str1)
11. 특정 문자 제거하기
def solution(my_string, letter):
return my_string.replace(letter, '')
다른 사람의 풀이
1)
def solution(my_string, letter):
result = ''
for char in my_string:
if char != letter:
result += char
return result
12. 아이스 아메리카노
def solution(money):
return(int(money/5500),int(money)%5500)
다른 사람이 풀이
1)
def solution(money):
return divmod(money, 5500)
2)
def solution(money):
answer = [money // 5500, money % 5500]
return answer
13. 피자 나눠 먹기(1)
def solution(n):
if n%7 == 0:
return n//7
else:
return (n//7)+1
다른 사람이 풀이
1)
def solution(n):
return (n - 1) // 7 + 1
2)
def solution(n):
return -(-n//7)
3)
def solution(n):
answer = 0
if n%7 != 0:
answer = (n//7) + 1
else:
answer = n//7
return answer
14. 최댓값 만들기(1)
import random
def solution(numbers):
n_list=[numbers]
a = max(random.choice(n_list))
return a*int(len(n_list))
블로그 찾아봄
다른 사람이 풀이
1)
def solution(numbers):
numbers.sort()
return numbers[-2] * numbers[-1]
2)
def solution(numbers):
answer = 0
max = 0
for i in range(len(numbers)):
for j in range(len(numbers)):
if i == j:
continue
if max < numbers[i] * numbers[j]:
max = numbers[i] * numbers[j]
return max
15. 배열 두 배 만들기
def solution(numbers):
answer = []
for i in numbers:
answer.append(i * 2)
return answer
다른 사람이 풀이
1)
def solution(numbers):
return [num*2 for num in numbers]
2)
def solution(numbers):
return list(map(lambda x: x * 2, numbers))
3)
def solution(numbers):
return [2*i for i in numbers]
16. 피자 나눠 먹기(3)
import math
def solution(slice, n):
if n/slice >= 1:
return math.ceil(n/slice)
else: return 0
코드실행은 되는데 틀렸다고 나옴
읭?
아 어차피 올림하는 거면 굳이 if문이 필요가 없구나?
import math
def solution(slice, n): return math.ceil(n/slice)
다른 사람이 풀이
1)
def solution(slice, n):
return ((n - 1) // slice) + 1
2)
def solution(slice, n):
d, m = divmod(n, slice)
return d + int(m != 0)
3)
def solution(slice, n):
return n//slice + (1 if n%slice else 0)
4)
from math import ceil
def solution(slice, n):
return ceil(n/slice)
17. 짝수 홀수 개수
def solution(num_list):
a = 0
b = 0
for i in num_list:
if i%2 == 0:
a += 1
else:
b += 1
return(a,b)
다른 사람이 풀이
1)
def solution(num_list):
answer = [0,0]
for n in num_list:
answer[n%2]+=1
return answer
2)
def solution(num_list):
odd = sum(1 for n in num_list if n % 2)
return [len(num_list) - odd, odd]
3)
def solution(num_list):
div_num_list = list(map(lambda v: v % 2, num_list))
return [div_num_list.count(0), div_num_list.count(1)]
18. 자릿수 더하기
def solution(n):
answer = 0
while n > 0:
answer += n % 10
n //= 10
return answer
다른 사람이 풀이
1)
def solution(n):
answer = 0
while n:
n, r = divmod(n, 10)
answer += r
return answer
2)
def solution(n):
answer = sum(list(map(int,list(str(n)))))
return answer
3)
def solution(n):
temp = list(str(n))
answer = 0
for i in temp :
answer += int(i)
return answer
19. 배열의 유사도
def solution(s1, s2):
return s1.intersection(s2)
오류
AttributeError: 'list' object has no attribute 'intersection'
def solution(s1, s2):
return len(set(s1).intersection(s2))
다른 사람이 풀이
1)
def solution(s1, s2):
answer = 0
for word in s1:
if word in s2:
answer += 1
else:
continue
return answer
2)
def solution(s1, s2):
dic = {i:1 for i in s1}
answer = sum(dic.get(j,0)for j in s2)
return answer
20. 양꼬치
def solution(n, k):
a = n*12000
if n >= 10:
b = (n%10)*2000
elif n <10:
b = k*2000
return a+b
오류는 아니지만 계산이 틀림. 생각을 잘못한거임.
뭐가 문제지..?
나랑 조금 비슷하게 생각한 다른 블로그의 답
def solution(n, k):
tmp = n // 10
answer = 12000*n + 2000*(k-tmp)
return answer
다른 사람이 풀이
1)
def solution(n, k):
service=n//10
answer = 12000*n+(2000*(k-service))
return answer
'[내배캠 AI코스] TIL' 카테고리의 다른 글
내일배움캠프 17일차 TIL - 코드카타 문제들③ (0) | 2024.03.20 |
---|---|
내일배움캠프 16일차 TIL - 코드카타 문제들② (0) | 2024.03.19 |
내일배움캠프 13일차 TIL - 3번 과제 (0) | 2024.02.29 |
내일배움캠프 12일차 TIL - 1, 2번 과제 (0) | 2024.02.28 |
내일배움캠프 11일차 TIL - UP&DOWN 게임 만들기 (1) | 2024.02.26 |