burning-carrot / study-problem-solving

알고리즘 고수가 되기 위한 지름길
5 stars 1 forks source link

junow programmers 42842 카펫 #136

Closed Junow closed 4 years ago

Junow commented 4 years ago

42842. 카펫

문제링크

메모리 (KB) 시간 (ms)
3.8mb 0.01ms

설계

brown + yellow = 전체너비 yellow_height + 2 = 전체 사각형 높이 yellow_width + 2 = 전체 사각형 너비

노란색 사각형이 한줄로 둘려쳐져 있다고 했으니까 전체 높이는 최소 3;

너비가 높이보다 같더나 크다고 했으니까 높이를 최소값부터 찾아나가다가 답을 만나자마자 리턴하면 가능한 사각형후보들중 가장 너비가 큰 사각형이 나옴.

  1. 너비가 정수가 안나오는 경우는 거른다.
  2. (w - 2) * (h - 2) == yellow 조건을 만족하면 정답임.

시간복잡도

반복문: 3 ~ brown(N) + yellow(M)

O(N+M)