Skip to content
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

[2023-10-13] jisu #332#334

Merged
zsmalla merged 1 commit into
mainfrom
jisu-#332
Mar 18, 2024
Merged

[2023-10-13] jisu #332#334
zsmalla merged 1 commit into
mainfrom
jisu-#332

Conversation

@zsmalla
Copy link
Copy Markdown
Contributor

@zsmalla zsmalla commented Oct 12, 2023

PR Summary

풀이 시작 : 2023-10-11 16:00

제한 사항

  • 보드 크기 1 1 <= N <= 20
  • 보드 내부 수 < 1024

Solution

  • 시뮬레이션

  • 최대 5번 이동시키는 경우의 수는 5 ** 4 = 625

  • 한 번의 재귀에서 N^2이어도 20 * 40 = 400

    • 625 * 400 = 250000의 연산량이므로 N^2이 훨씬 넘어도 괜찮다.
  • 한 번 합쳐진 블록은 또 합쳐질 수 없음 => 별도의 표시 필요

  • up, down, left, right를 구현해야 함

    • 각 이동 메서드는 어떻게 구현?
        1. 0이 아닌 비교하여 합칠 값 찾기
        1. 판단 후 합치기
        • 2-1. 값이 같고 아직 합쳐지지 않은 경우 합치기
        • 2-2. 바꿀 위치가 0인 경우
        • 2-3. 그 외 합칠 수 없는 경우 끌어 올리기만
    • trick
      • up-left 는 row와 col을 바꿔서 그대로 로직을 적용하면 됨
      • down-right 는 up-left에서 배열을 반전시켜 적용 후 다시 반전시켜주면 됨
  • 각 상태공간에서 matrix는 독립적이므로 깊은 복사(deepcopy) 필요

풀이 중단 : 2023-10-11 17:10 (1시간 10분 경과)
풀이 재개 : 2023-10-12 13:10
풀이 완료 : 2023-10-12 14:10 (2시간 10분 소요)

@zsmalla zsmalla added the BOJ label Oct 12, 2023
@zsmalla zsmalla requested a review from limstonestone October 12, 2023 05:46
@zsmalla zsmalla self-assigned this Oct 12, 2023
@zsmalla zsmalla linked an issue Oct 12, 2023 that may be closed by this pull request
@zsmalla zsmalla merged commit f4ebd1f into main Mar 18, 2024
@zsmalla zsmalla deleted the jisu-#332 branch March 18, 2024 10:06
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOJ] 2048 (Easy)

1 participant