1. 정수 부분
import math
def solution(flo):
return math.trunc(flo)
다른 사람의 풀이
1)
def solution(flo):
return flo//1
2)
def solution(flo):
return int(flo)
2. n의 배수
def solution(num, n):
if num%n == 0:
return 1
else:
return 0
다른 사람의 풀이
1)
def solution(num, n):
return int(not(num % n))
2)
def solution(num, n):
return int(num % n == 0)
3. 문자열 앞의 n글자
def solution(my_string, n):
return my_string[:n]
다른 사람의 풀이
1)
def solution(my_string, n):
ans_str = ''
ans_arr = []
i = 0
while i < n :
ans_arr.append(my_string[i])
i += 1
return ans_str.join(ans_arr)
2)
solution = lambda a,b : a[0:b]
4. 이어 붙인 수
파이썬 리스트 순서 뒤집기
def solution(num_list):
num_list.reverse()
x = 0
y = 0
z = 0
for i in num_list:
x += 1
if i%2 == 0:
y = y + i*(10**x)
elif i%2 == 1:
z = z + i*(10**x)
return y+z
>> 실행은 되는데 계산한 값이 정답이랑 다름.. 답은 581이 나와야 하는데 내가 쓴대로 풀면 57830이 나옴ㅠ
def solution(num_list):
num_list.reverse()
a = 0
b = 0
x = 0
y = 0
for i in num_list:
if i%2 == 0:
a += 1
x = x + i*(10**(a-1))
elif i%2 == 1:
b += 1
y = y + i*(10**(b-1))
return x+y
다른 사람의 풀이
1)
def solution(num_list):
answer = 0
a=""#홀수
b=""#짝수
for i in num_list:
if i%2!=0:
a+=str(i)
else:
b+=str(i)
return int(a)+int(b)
2)
def solution(num_list):
return int(''.join([str(x) for x in num_list if x % 2])) + int(''.join([str(x) for x in num_list if not x % 2]))
3)
def solution(num_list):
odd=''
even=''
for i in num_list:
if i%2!=0:
odd+=str(i)
else:
even+=str(i)
return eval(odd+'+'+even)
5. flag에 따라 다른 값 반환하기
def solution(a, b, flag):
if flag is true:
return a+b
elif flag is false:
return a-b
NameError: name 'true' is not defined
...?
블로그 참고
def solution(a, b, flag):
bool_flag = bool(flag)
if bool_flag == 1:
return int(a+b)
else:
return int(a-b)
return bool_flag
다른 사람의 풀이
1)
def solution(a, b, flag):
if flag:
return a+b
return a-b
2)
def solution(a, b, flag):
return a + b * (2 * int(flag) - 1)
3)
solution=lambda a,b,f:[a-b,a+b][f]
4)
def solution(a, b, flag):
return a - b + 2 * b * flag
6. 길이에 따른 연산
from math import prod
def solution(num_list):
if len(num_list)>10:
return sum(num_list)
elif len(num_list)<=10:
return prod(num_list)
다른 사람의 풀이
1)
def solution(num_list):
if len(num_list) >= 11:
return eval('+'.join(list(map(str, num_list))))
else:
return eval('*'.join(list(map(str, num_list))))
2)
from functools import reduce
def solution(l):
return sum(l) if len(l)>=11 else reduce(lambda a,b: a*b, l)
7. 소문자로 바꾸기
def solution(myString):
return myString.lower()
다른 사람의 풀이
1)
def solution(myString):
answer = ""
for i in myString:
if ord(i) < 95:
i = ord(i) + 32
answer += str(chr(i))
else:
answer += i
return answer
8. 원소들의 곱과 합
from math import prod
def solution(num_list):
if prod(num_list)<(sum(num_list))**2:
return 1
else:
return 0
다른 사람의 풀이
1)
def solution(num_list):
s=sum(num_list)**2
m=eval('*'.join([str(n) for n in num_list]))
return 1 if s>m else 0
2)
def solution(num_list):
a=1
b=0
for x in num_list:
a*=x
b+=x
if a<b*b: return 1
return 0
3)
from functools import reduce
def solution(num_list):
return 1 if (reduce(lambda x, y: x * y, num_list)) < (sum(num_list) ** 2) else 0
9. 문자열 곱하기
def solution(my_string, k):
return my_string*k
10. 공배수
def solution(number, n, m):
if number%n==0 and number%m==0:
return 1
else:
return 0
다른 사람의 풀이
1)
def solution(number, n, m):
return int(bool(number % n == 0) & bool(number % m == 0))
2)
def solution(number, n, m):
return int(number%n == 0 and number%m == 0)
11.세균 증식
def solution(n, t):
return n*(2**t)
다른 사람의 풀이
1)
def solution(n, t):
return n << t
12. 삼각형의 완성조건(1)
def solution(sides):
a = sides[0]
b = sides[1]
c = sides[2]
if a<b+c and b<a+c and c<a+b:
return 1
else:
return 2
뭔가 무식한 방법 같지만 일단 해냄
다른 사람의 풀이
1)
def solution(sides):
return 1 if max(sides) < (sum(sides) - max(sides)) else 2
내가 하고 싶었던 게 딱 이거
2)
def solution(sides):
sides.sort()
return 1 if sides[0]+sides[1]>sides[2] else 2
13. 중앙값 구하기
def solution(array):
return array[(len(array)/2+1)]
TypeError: list indices must be integers or slices, not float
def solution(array):
return array[int(len(array)//2+1)]
코드는 완성, 문제가 틀림. 아 또 왜
def solution(array):
array.sort()
return array[len(array)//2]
14. 짝수는 싫어요
def solution(n):
a = []
b = []
for i in range(1,n):
if i%2 == 1:
a.append(i)
else:
b.append(i)
retrun a
오류남
a에 SyntaxError: invalid syntax
아 짜증나
def solution(n):
return [i for i in range(1, n+1, 2)]
다른 사람의 풀이
1)
def solution(n):
answer = []
for i in range(1, n + 1):
if i % 2 == 1:
answer.append(i)
return answer
아 내가 이렇게 할려고 했던건데..!
굳이 else를 쓸 필요가 없구나?
15. 순서쌍의 개수
def solution(n):
answer = []
for i in range(1,n+1):
if n % i == 0:
answer.extend([(i, n//i)])
return len(answer)
다른 사람의 풀이
1)
def solution(n):
return len(list(filter(lambda v: n % (v+1) == 0, range(n))))
2)
def solution(n):
return len([number for number in range(1, n+1) if n%number == 0])
3)
def solution(n):
answer = 0
for i in range(1, int(n ** 0.5) + 1):
if n % i == 0:
answer += 2
if i * i == n:
answer -= 1
return answer
6. 모음 제거
def solution(my_string):
vowel = ['a', 'e', 'i', 'o', 'u']
for i in vowel:
if i in my_string:
my_string = my_string.replace(i, '')
return my_string
다른 사람의 풀이
1)
def solution(my_string):
return "".join([i for i in my_string if not(i in "aeiou")])
2)
def solution(my_string):
answer = ''
for c in my_string:
if c in ['a', 'e', 'i', 'o', 'u']:
continue
answer += c
return answer
3)
import re
def solution(my_string):
return re.sub(r"a|e|i|o|u", "", my_string)
17. 문자 반복 출력하기
def solution(my_string, n):
answer = []
for i in my_string:
answer.append(i * n)
return ''.join(answer)
다른 사람의 풀이
1)
def solution(my_string, n):
return ''.join(i*n for i in my_string)
2)
def solution(my_string, n):
answer = ''
for c in list(my_string):
answer += c*n
return answer
18. 옷가게 할인 받기
def solution(price):
if price >= 100000 and price<300000:
answer = price*0.95
elif price >=300000 and price<500000:
answer = price*0.90
elif price >=500000:
answer = price*0.80
return answer
>>코드 실행은 됨. 그러나 제출하면 런타임 에러
def solution(price):
if price >= 100000 and price<300000:
return int(price*0.95)
elif price >=300000 and price<500000:
return int(price*0.90)
elif price >=500000:
return int(price*0.80)
else:
return price
다른 사람의 풀이
1)
def solution(price):
discount_rates = {500000: 0.8, 300000: 0.9, 100000: 0.95, 0: 1}
for discount_price, discount_rate in discount_rates.items():
if price >= discount_price:
return int(price * discount_rate)
2)
def solution(price):
return (100 - len([1 for k in [100000, 300000, 500000, 500000] if k<=price])*5) * price // 100
19. 제곱수 판별하기
import math
def solution(n):
a = math.sqrt(n)
if n%a == 0:
return 1
elif n%a !=0:
return 2
다른 사람의 풀이
1)
def solution(n):
return 1 if (n ** 0.5).is_integer() else 2
2)
def solution(n):
if n**(1/2) == int(n**(1/2)) :
return 1
else :
return 2
3)
def solution(n):
for i in range(1,n):
if n == i * i:
return 1
return 2
20. 숨어있는 숫자의 덧셈(1)
import re
def solution(my_string):
numbers = re.findall('\d', my_string)
return sum(numbers)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>int 형을 str 형과 + 연산자로 더할 수 없다
import re
def solution(my_string):
answer = []
numbers = re.findall('\d', my_string)
return answer.append(str(numbers))
>>결과값이 자꾸 null로 뜸..
블로그 뒤짐.
import re
def solution(my_string):
answer = []
numbers = re.findall('\d', my_string)
total = 0
for num in numbers:
total += int(num)
return total
다른 사람의 풀이
1)
def solution(my_string):
return sum(int(i) for i in my_string if i.isdigit())
2)
def solution(my_string):
answer = 0
for i in my_string:
try:
answer = answer + int(i)
except:
pass
return answer
3)
def solution(my_string):
return sum(map(int, filter(lambda x: x.isdigit(), my_string)))
'[내배캠 AI코스] TIL' 카테고리의 다른 글
내일배움캠프 19일차 TIL - SQL① (1) | 2024.03.25 |
---|---|
내일배움캠프 17일차 TIL - 코드카타 문제들③ (0) | 2024.03.20 |
내일배움캠프 15일차TIL - 코드카타 문제들① (0) | 2024.03.18 |
내일배움캠프 13일차 TIL - 3번 과제 (0) | 2024.02.29 |
내일배움캠프 12일차 TIL - 1, 2번 과제 (0) | 2024.02.28 |