반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42842
해설
brown+yellow = w*h
yellow = (w-2)*(h-2)
위 방정식을 풀면 w, h를 구할 수 있다. 허나 이렇게 풀면 완전 수학문제다
나는 완전탐색 느낌이 나도록 문제룰 풀어보았다.
total 셀의 개수는 brown + yellow 이다.
yellow = (w-2)*(h-2) 이다.
- h를 3부터 시작해서 차례로 오름차순으로 증가해 나간다
- total이 h로 나눠지는지 확인한다.
- h로 나눠지면 그때의 (w-2)*(h-2)가 yellow가 되는지 확인한다
from math import sqrt, ceil
def solution(brown, yellow):
answer = []
total = brown + yellow
for h in range(3, total + 1):
if total % h == 0:
w = total/h
if (w - 2) * (h - 2) == yellow:
answer = [w,h]
break
return answer
반응형
'Python > 알고리즘문제' 카테고리의 다른 글
[프로그래머스] 디펜스 게임 (0) | 2022.12.12 |
---|---|
[프로그래머스] 쌍둥이 빌딩 숲 (0) | 2022.12.10 |
[프로그래머스][완전탐색] 소수 찾기 (0) | 2021.04.15 |
[프로그래머스][동적계획법] 도둑질 (0) | 2021.04.14 |
[프로그래머스][동적계획법] 등굣길 (0) | 2021.04.13 |
댓글