본문 바로가기

SWEA/D5

[SWEA] 4613. 러시아 국기 같은 깃발

문제 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWQl9TIK8qoDFAXj&categoryId=AWQl9TIK8qoDFAXj&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

풀이

* 조합을 사용해서 백트래킹을 하며 모든 경우를 다 해본다. 

* 첫 행과 마지막 행은 흰색 / 빨간색으로 고정된다. 

2행부터 n-1 행까지의 조합을 구한다. 

* 조합을 구할 때 파란색이 반드시 포함되어야 한다. 

* W = 1 

B = 2

R = 3

으로 치환을 했다. 

색을 칠 할 때 이전의 행에 칠해진 색과 숫자가 같거나, 더 큰 숫자만 칠할 수 있다. 

예를 들어, 흰 -> 파 (O) / 파 -> 흰(X) 

파 -> 빨 (O) / 빨 -> 파(X)

 

* 이 특징을 이용해서 모든 경우를 전부 구하지 않고도 정답을 구할 수 있다. 

* chk[] => 이 배열에는 각 행마다 칠해질 색의 수가 지정된다. 

* n-1 행까지 칠해질 색이 정해졌다면 calc() 에서 정해진 색으로 바꾸기 위해 몇 개의 칸을 바꿔야 하는지 계산하여 반환한다.

 

 

'SWEA > D5' 카테고리의 다른 글

[SWEA] 1249. 보급로  (0) 2020.05.18
[SWEA] 1824. 혁진이의 프로그램 검증  (0) 2020.05.04
[SWEA 7393][D4][JAVA] 대규의 팬덤활동  (0) 2019.05.14
[SWEA 4411][D5][JAVA] 덕환이의 카드 뽑기  (0) 2019.05.08