TanzDev
TIL 31 (알고리즘 문제) 본문
def solution(flo):
return int(flo)
정수 부분 - flo값을 int해주면 끝
--------------------------------
def solution(my_string, n):
return my_string[:n]
print(solution("ProgrammerS123", 11))
문자열의 앞에 n글자 - my_string에 슬라이싱을 적용시키면 끝
---------------------------------
def solution(sides):
sides.sort()
return 1 if sides[2] < sum(sides[:2]) else 2
삼각형의 완성조건 (1)
side를 정렬해주고 1번째, 2번째 인덱스의 크기와 비교해 맞지않다면
2를 출력하는 방식으로 적용시켰다.
---------------------------------
num_list = [3, 4, 5, 2, 1]
def solution(num_list):
temp = ''
temp1 = ''
for i in num_list:
if i % 2 == 0:
temp += str(i)
else:
temp1 += str(i)
return int(temp) + int(temp1)
print(solution(num_list))
def solution(num_list):
odd_sum = int(''.join(map(str, filter(lambda x: x % 2 != 0, num_list))))
even_sum = int(''.join(map(str, filter(lambda x: x % 2 == 0, num_list))))
return odd_sum + even_sum
print(solution([1,2,3,4,5,6,7,8]))
이어붙인 수
리스트에 있는 숫자를 문자열로 변환해서 짝수,홀수로 나누어준다.
짝수끼리 더해준 값과 홀수끼리 더해준 값을 합치면 끝
---------------------------------
def solution(a, b, flag):
if flag:
result = a + b
else:
result = a - b
return result
print(solution(-4, 7, True))
flag에 따라 다른값 반환하기
- flag값이 True면 a+b를 출력, False면 a-b로 출력
---------------------------------
import math
num_list = [2, 3, 4, 5]
def solution(num_list):
if len(num_list) >= 11:
result = sum(num_list)
else:
len(num_list) <= 10
result = math.prod(num_list)
return result
print(solution(num_list))
길이에 따른 연산
math 라이브러리를 사용했고, num_list의 길이(len)이 11보다
큰지, 10보다 작은지에 대한 if문으로 더하기와, math.prod라는
라이브러리 곱하기를 통해 해결했다.
---------------------------------
def solution(myString):
return myString.lower()
소문자로 바꾸기
.lower() 함수를 통해 해결
---------------------------------
num_list = [3, 4, 5, 2, 1]
def solution(num_list):
answer = 1
for num in num_list:
answer *= num
sum_list = sum(num_list) ** 2
if answer < sum_list:
return 1
else:
return 0
print(solution(num_list))
원소들의 제곱과 합의제곱
합의제곱이 기억안났는데, 원리는 파악했다.
for문으로 num에 대입해주고 answer값으로 곱해주었다.
sum_list는 num_list를 제곱해주고
answer랑 sum_list를 비교해서 1, 0 출력 조건을 주었다.
---------------------------------
def solution(my_string, k):
return my_string * k
문자열곱하기
곱해주면 끝
---------------------------------
def solution(number, n, m):
if number % n == 0 and number % m == 0:
result = 1
else:
result = 0
return result
print(solution(60, 2, 3))
공배수
if값으로 number % n 값과 m의 값 두개가 동일하게 0이되는 조건을
줬다.
---------------------------------
def solution(n_str):
return int(n_str)
문자열을 정수로 변환하기
- 문자열을 int로 리턴해주면된다.
---------------------------------
def solution(my_string, n):
return my_string[-n:]
문자열 뒤의 n글자
- [::] 슬라이싱으로 -n값을 줘서 함수를 작성했다.
---------------------------------
def solution(num_list, n):
return num_list[n-1:]
n번째 원소부터
- n값만 입력하면 n번째 순서는 사라지기때문에
마이너스 -를 대입해서 완료한다.
---------------------------------
def solution(rny_string):
return rny_string.replace('m', 'rn')
rny_string
- .replace() 함수로 해결했다.
---------------------------------
a = 2
b = 91
def solution(a, b):
result1 = int(str(a) + str(b))
result2 = 2 * a * b
if result1 > result2:
answer = result1
else:
answer = result2
return answer
print(solution(2, 91))
두 수의 연산값 비교하기
result1은 str로 a와 b를 더한뒤에 int 사용해줬고
result2는 곱셈값을 사용했다.
그 뒤 if문을 사용하여 result1과 2를 비교해주고 큰 수를 출력
'기록보드 > TIL' 카테고리의 다른 글
TIL 33 [알고리즘 문제] (0) | 2024.03.08 |
---|---|
TIL 32 (알고리즘 문제) (1) | 2024.03.07 |
TIL 30 (알고리즘 문제) (3) | 2024.03.05 |
TIL 29 (알고리즘) (1) | 2024.03.04 |
TIL 28 (개별과제 마무리) (0) | 2024.02.29 |