Gaegul's devlog

[Algorithm 풀이] 완전탐색: ColorPaper 본문

Algorithm/Algorithm 풀이

[Algorithm 풀이] 완전탐색: ColorPaper

부지런깨꾹이 2022. 9. 24. 12:37
728x90
반응형

[완전 탐색 대표문제]

이번 문제는 색종이들의 넓이를 구하는 문제이다.  (겹치는 부분을 처리하는 것이 관건인 문제!!)

입력 : 

2
0 0 10 10
2 2 6 6

출력 : 

64
36

## template

n = int(input())
input_list = [list(map(int, input().split(" "))) for _ in range(n)]
arr = [[0] * (101) for _ in range(101)] 

for i in range(n):
  start_x = input_list[i][0]
  start_y = input_list[i][1]
  
  width = input_list[i][2] #가로
  height = input_list[i][3] # 세로 

  for j in range(start_x, start_x+width):
    for k in range(start_y, start_y+height):
      arr[j][k] = i+1

for i in range(n):
  cnt = 0
  for j in range(101):
    for k in range(101):
      if arr[j][k] == i+1:
        cnt+=1
      else:
        continue
  print(cnt)
  #cnt_list.append(cnt)

 

* Solution 


1) 비교할 색종이 갯수만큼 순서대로 색종이를 숫자로 채우기 ex) 1번째 색종이 1로 채우고, 2번째 2로..

2) 마지막으로 배열을 완전 탐색하면서 숫자들의 갯수(각 색종이들의 넓이가 된다)를 카운트 한다.

728x90
반응형
Comments