본문 바로가기

BOJ/C++

[BOJ] 18809. Gaaaaaaaaaarden

 

* 배양액들의 조합을 구해서 배치한다. 

* 큐를 [초록색 배양액, 빨간색 배양액] 으로 두 개를 사용하는데 

depth와 좌표 정보를 넣었다. 

 

depth는 처음에 문제를 잘 못 이해해서 예시를 보고 추가했다. 

G 1 or 2 R

이렇게 되어있을 때만 가운데 좌표에 꽃이 필 수 있다. 

동시에 도달했을 때의 정보를 넣어줘야 하는데 그 정보를 depth로 기록했다. 

 

*depth를 기록했다면 이 정보를 빠르게 찾아내야 하는데, 이 정보는 dp[][] 배열에 기록해서 

빨간색 배양액이 다음에 갈 곳에 이미 초록색 배양액이 있다. -> dp[nx][ny] 가 depth + 1 이면 초록색 배양액이 방금 전에 도달한 곳이다라는 정보를 찾아낼 수 있다. -> 꽃을 틔운다. 

 

*50*50 인데 조합까지 해서 그런지 시간이 꽤 걸린다. 최적화는 나중에..

 

 

'BOJ > C++' 카테고리의 다른 글

[BOJ] 2636. 치즈  (0) 2020.03.29
[BOJ] 18808. 스티커 붙이기  (0) 2020.03.25
[BOJ] 10799. 쇠막대기 (C)  (0) 2020.03.24
[BOJ] 1158. 요세푸스 문제 (C)  (0) 2020.03.24
[BOJ] 2151. 거울설치 + TC  (0) 2020.03.18