본문 바로가기
LOg/내일배움캠프

16일차 TIL 4.3

by slloth 2023. 4. 3.

알고리즘 문제풀이

 

1번 직사각형 넓이구하기

https://school.programmers.co.kr/learn/courses/30/lessons/120860

def solution(dots):
    return (max(dots)[0]-min(dots[0]))*(max(dots)[1]-min(dots)[1])

# x,y 매개변수 선언

# x의 max-min

# y의 max-min

둘 곱하기

* min이 -이면 max+min으로 값이 치환됨

 

2 번 이진수 더하기(이진수->십진수 변환)

# 변환된 십진수 더하고

# 십진수를 이진수로 변환하기

# bin()=> 이진수 함수

# int()=> 10진수 

# [2:]2번째부터 (앞에 0,1번째 슬라이싱)

# => ob(1010...)이런식으로 나오니까

def solution(bin1, bin2):
    a = int(bin1, 2)
    b = int(bin2, 2)
    c = bin(a + b)[2:] #ob
    return c

 

def solution(bin1, bin2):
    a = int(bin1) # 2진수
    b = int(bin2, 2) # 10진
    # c = bin(a + b)[2:]
    # return c
    print(a,b)

# 10 3

 

https://bskyvision.com/entry/python-10%EC%A7%84%EC%88%98%EB%A5%BC-2%EC%A7%84%EC%88%98-8%EC%A7%84%EC%88%98-16%EC%A7%84%EC%88%98%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

 

3번 연속된 수의 합

# 이해 못함

# 등차 수열로 해결하는듯

# a0 = a

# d = 1(등차는 1)

# range(a,b)

# a부터 b-1까지

 

 

def solution(num, total):
    # 3, 0 
    a = total + 100
    
    while True:
        b = a - num
        answer = 0
        for i in range(a, b, -1):
            answer += i
            
        if answer == total:
            return list(range(b+1 , a+1))
        else:
            a -= 1
            return list(range(b+1 , a+1))

 

or 

def solution(num, total):
#     a = total + 100
#     while True:
#         b = a - num
#         answer = 0
#         for i in range(a, b, -1):  # -1은 total에서부터 내림차순으로 
#             answer += i

#         if answer == total:
#             return list(range(b+1 , a+1))
#             break
#         else:
#             a -= 1

 

https://school.programmers.co.kr/questions/41789

'LOg > 내일배움캠프' 카테고리의 다른 글

18일차 TIL 4.5  (0) 2023.04.05
17일차 TIL 4.4  (0) 2023.04.04
3주차 WIL  (0) 2023.04.02
15일차 TIL 3.31  (0) 2023.03.31
14일차 TIL 3.30  (0) 2023.03.30