TanzDev

TIL 31 (알고리즘 문제) 본문

기록보드/TIL

TIL 31 (알고리즘 문제)

Tanz-dev 2024. 3. 7. 00:00
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