https://school.programmers.co.kr/learn/courses/30/lessons/42842#
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก์ Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
20260401
ํจ์ฌ ๊ฐ๋จํ๊ฒ ํ์์
import math
def solution(brown, yellow):
# ๊ฐ๋ก๊ธธ์ด >= ์ธ๋ก๊ธธ์ด
# yellow์ ๊ฐ๋ก&์ธ๋ก ๊ฒฝ์ฐ์ ์ ๋ฐ๋ณต๋ฌธ -> ์ฌ๋ฐ๋ฅธ brown ์ฐพ๊ธฐ
for i in range(1,int(math.sqrt(yellow))+1):
if yellow % i == 0:
yellow_w, yellow_h = yellow//i, i
cal_brown = (yellow_w+2)*2 + yellow_h*2
if cal_brown == brown:
break
return [yellow_w+2, yellow_h+2]
if yellow % i ์ด ๋ถ๋ถ์ ์ ์จ์ ์ฒ์์ ํ๋ ธ์์
isqrtํ๋ฉด ์ ์ ์ ๊ณฑ๊ทผ์ ๋๋ ค์ค๋ค๋ ์ฌ์ค๋ ์๊ฒ๋จ. ๊ทธ๋ฌ๋ฉด math.floorํ ํ์๊ฐ ์์
import math
def expect_brown(xy):
xx, yy = xy[0], xy[1]
return 2*(xx+2)+2*yy
def return_xy_list(yellow):
xy_list = []
for i in range(1, math.isqrt(yellow)+1):
if yellow % i == 0:
x = yellow/i; y = i
xy_list.append([x,y])
return xy_list
def solution(brown, yellow):
xy_list = return_xy_list(yellow)
for xy in xy_list:
if expect_brown(xy) == brown:
return [xy[0]+2, xy[1]+2]'๐ Study > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ํ๋ก๊ทธ๋๋จธ์ค Lv2 | ์์ ํ์ | ์ ๋ ฅ๋ง์ ๋๋ก ๋๋๊ธฐ (0) | 2025.10.11 |
|---|---|
| ํ๋ก๊ทธ๋๋จธ์ค Lv2 | ์์ ํ์ | ํผ๋ก๋ (0) | 2025.10.11 |
| ํ๋ก๊ทธ๋๋จธ์ค Lv2 | ์์ ํ์ | ์์ ์ฐพ๊ธฐ (0) | 2025.10.11 |
| ํ๋ก๊ทธ๋๋จธ์ค Lv2 | ์ ๋ ฌ | ๊ฐ์ฅ ํฐ ์ (0) | 2025.10.09 |
| ํ๋ก๊ทธ๋๋จธ์ค | dfs/bfs | ํ๊ฒ ๋๋ฒ (0) | 2025.10.09 |