티스토리 뷰

BOJ

[백준 14500] 테트로미노

wo_ody 2020. 3. 29. 13:45
테트로미노

안녕하세요 !!! 우디🙇입니다.

오늘은 BFS로 푼 테트로미노 문제에 대해 설명해드릴께요.

 

문제

[백준 14500] 테트로미노

 

문제 설명


1. 테트로미노
모든 모양(좌우대칭)을 종이에 하나 하나 적재해서 최댓값 구하기.

처음에 생각해낸 방법이 노가다 방법이었습니다. (직접 해보진 않았지만 ,,,)

시간 복잡도 빅오로 계산해보았을 때

500 X 500 개의 정사각형마다 테트로미노를 놓아야 되고 테트로미노 5종류 중에 좌우대칭한 모양이 각 종류마다 대충 최대 8개 있다고 하면 저렇게 계산이 되쥬 ?


이 문제의 시간 제한이 2초 (1초를 대충 1억번의 연산으로 생각) 이니깐 시간제한에도 안걸릴 것 같고 엄청난 정성이 있다면 이 방법도 괜찮은 것 같습니다 !


🙈 : 그치만 저는 깐지나게 풀래요 ❗❗

 

2. 테트로미노 모양을 만들어가면서 최댓값 구하기.

우선, (0,0) 을 기준으로 테트로미노를 만들어가는 과정을 설명하겠습니다.

 

이 과정을 트리 🌳로 나타내보면,

 

휴도 코드

 

이렇게 놓고 보니 ,,, 테트로미노 모양 하나가 빠졌죠 ❔❔

바로 법규 모양이 빠졌는데 이 모양은 위처럼 구해질 수 없으므로 따로 구해야 합니다 !

  • 연속으로 같은 방향 (상상상 하하하 좌좌좌 우우우)으로 움직였을 때, 중간의 현재좌표에서 양옆 또는 위아래로 값을 더해주면 법규 모양이 되면서 최댓값을 구할 수 있습니다 ~

 

휴도코드

 

구현

'BOJ' 카테고리의 다른 글

[백준 14502] 연구소  (0) 2020.04.15
[백준 13460] 구슬탈출 2  (0) 2020.04.13
[백준 14501] 퇴사  (0) 2020.03.24
[백준 12100] 2048(Easy)  (0) 2020.02.29
[백준 17070] 파이프 옮기기 1  (0) 2020.02.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함