

def solution(brown, yellow):
n = [i for i in range(1,yellow+1) if yellow % i == 0]
for j in range(1,len(n)+1):
if (n[j-1]+2) * (n[-j]+2) == yellow + brown:
return n[-j]+2,n[j-1]+2
맨처음에
def solution(brown, yellow):
for i in range(1,yellow+1):
for j in range(1,yellow+1):
if i * j == yellow and (i+2) * (j+2) == brown + yellow:
return [j+2, i+2]
이 방식으로 풀었는데 절반정도의 문제가 시간초과로 인해 통과하지 못하였다.
그래서 배열 n안에 yellow의 약수만 넣어줘서 계산시간을 단축시키게 했다.
다른 사람 풀이
def solution(brown, red):
for i in range(1, int(red**(1/2))+1):
if red % i == 0:
if 2*(i + red//i) == brown-4:
return [red//i+2, i+2]
둘레의 길이를 이용하였다고 한다

수학을 못해서 그런지 이런 사고가 나오지 않는당....
| [파이썬/python] 백준 25305번 : 커트라인(🥉2) (0) | 2023.03.27 |
|---|---|
| [파이썬/python] 백준 19532번 : 수학은 비대면강의입니다 (🥉2) (브루트포스) (0) | 2023.03.27 |
| [파이썬/python] 프로그래머스 : 영어 끝말잇기 (Lv.2) (0) | 2023.03.27 |
| [파이썬/python] 프로그래머스 : 짝지어 제거하기 (Lv.2) (스택) (0) | 2023.03.27 |
| [파이썬/python] 프로그래머스 : 피보나치 수 (Lv.2) (0) | 2023.03.27 |