BOJ/C++

[BOJ] 18808. 스티커 붙이기

IamToday 2020. 3. 25. 15:00

 

*단순 시뮬레이션 

*스티커가 회전한 결과를 미리 저장한다. 

sticker[100][4][10][10]

0: 0도 

1: 90도

2: 180도 

3:270도 

 

*스티커가 순서대로가 아니라 조합을 구하는 건 줄 알고 시간초과를 걱정했는데

다행히 순서대로 붙이는 것이다. 

 

스티커를 순서대로 불러오면서 4방향을 모두 본다. 

check() 에서는 지금 범위에 스티커를 붙일 수 있는지 없는지를 확인하고, 붙일 수 있으면 넣는다. 

여러 곳을 붙일 수 있으면 가장 위쪽을 선택하는 것이기 때문에 그리디하게 해결할 수 있다. 

 

*스티커의 높이와 너비는 차지하는 칸과 동일하지 않기 때문에 sizes라는 백터배열에 저장한 후 가져왔다. 

 

*코드가 많이 더럽다. 시뮬레이션 문제이니, 풀이 방법만 참고하시길..

 

더보기