parksjin01   5년 전

파이썬으로 풀었습니다.

소스코드 소개

  1. 시간초과 피하기 위해 ↙ ↘ 두개의 대각선을 나타내는 2 * n -1 크기의 배열을 2개 만들었습니다.
  2. 같은 ↘ 에 포함되는 1들은 파이썬의 dict를 써서 묶었습니다.
  3. 재귀함수를 이용하여 같은 ↘에 포함된 1들중 어느 1을 선택해야 가장 많은 비숍을 놓을 수 있는지 계산했습니다.

소스는 위와 같은 형태로 작성했습니다. 다만 재출했을 때는 틀렸다고 나옵니다. ㅠㅠ

예제 코드 말고 실행시켜 본 것은 아래와 같습니다.

------------------------------------------------

TC 1

1

0

Result: 0

------------------------------------------------

TC 2

1

1

Result: 1

------------------------------------------------

TC 3

4

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

Result: 6

------------------------------------------------

TC 4

5

0 0 0 0 0

0 1 0 1 0

1 0 0 0 1

0 1 0 1 0

0 0 0 0 0

Result: 3

------------------------------------------------

TC 5

5

0 0 0 1 0

0 0 1 0 0

0 1 0 1 0

0 0 1 0 0

0 0 0 1 0

Result: 3

------------------------------------------------

TC 6

3

0 1 0

1 0 1

0 0 0

Result: 2

------------------------------------------------

댓글을 작성하려면 로그인해야 합니다.