https://school.programmers.co.kr/learn/courses/30/lessons/42842
테두리 1줄이 갈색인 카펫이 있다.
갈색 격자의 개수와 노란색 격자의 개수를 알 때, 카펫의 너비와 높이를 구하라
brown | yellow | return |
---|---|---|
10 | 2 | [4, 3] |
8 | 1 | [3, 3] |
24 | 24 | [8, 6] |
완전탐색 문제이므로.. 카펫의 노란 부분이 1줄인지 2줄인지 한줄씩 늘려가며 전부 확인하기로 했다
def solution(brown, yellow):
# 테두리 1줄은 다 갈색
# 노랑이가 1줄인지 2줄인지 다 체크하기
answer = [0,0]
i=1 #노란 격자가 몇줄인지
while i<=yellow:
if yellow % i==0:
if brown==(i+2)*(yellow//i+2)-yellow: #세로*가로
answer[0]=yellow//i+2
answer[1]=i+2
return answer
i+=1
return answer
while문 → O(n)
조건문 처리 → O(1)
⇒ O(n)