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

[2023-10-06] sumin #300#330

Merged
zsmalla merged 1 commit into
mainfrom
sumin-#300
Mar 18, 2024
Merged

[2023-10-06] sumin #300#330
zsmalla merged 1 commit into
mainfrom
sumin-#300

Conversation

@ksumini
Copy link
Copy Markdown
Contributor

@ksumini ksumini commented Oct 10, 2023

PR Summary

풀이시간: 35분

<input>
m: 판의 높이(2 ≦ n, m ≦ 30)
n: 판의 폭(2 ≦ n, m ≦ 30)
board: 판의 배치 정보(대문자 A-Z)

<solution>
문제에서 주어진대로 구현한다.
더 이상 제거되는 블록이 없을 때까지 다음의 과정을 반복

  1. 제거되는 블록 확인하기(2x2)
  • 제거되는 블록의 좌상단 좌표만 따로 보관하기
  1. 제거되는 블록은 .으로 값 변경하기
  • 제거되는 블록의 좌상단 좌표를 이용해 2x2 칸은 모두 .으로 변경
  1. 제거되는 블록의 위 블록들 내려주기
  • 재귀를 통해 더 이상 블록을 내릴 수 없을 때까지 제거된 블록 위의 블록들 내려주기

<시간복잡도>
O(NM) + O(NM) + O(NM) = O(3NM) = O(NM)을 더 이상 블록이 제거될 수 없을 때까지 반복

  • 제거되는 블록이 있는지 확인
  • 제거되는 블록 .으로 변경
  • 블록을 내리는 작업

@ksumini ksumini self-assigned this Oct 10, 2023
@ksumini ksumini linked an issue Oct 10, 2023 that may be closed by this pull request
Copy link
Copy Markdown
Contributor

@zsmalla zsmalla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

구현문제를 깔끔하게 잘 풀이해내신 것 같습니다! 특히 블록을 내리는 로직을 재귀를 활용해서 깔끔하게 정의하신 점이 인상깊었던 것 같아요! 고려해보면 좋을 점도 코멘트 달아두었습니다. 고생하셨습니다 수민님!

Comment thread Programmers/프렌즈4블록/sumin.py Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이것 조차 재귀로 구현하시다니.... 훨씬 직관적이고 좋은 것 같네요!

Comment thread Programmers/프렌즈4블록/sumin.py Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

매번 제거되는 블록을 '.'로 기록하고 세는 방법도 좋은 것 같습니다! 어차피 remove블록을 관리할 거라면, 제거할 블록을 담을 때 remove를 set으로 정의해서 담아두는 방식도 고려해보면 좋을 것 같아요. 그러면 이 N^2 로직을 안사용할 수 있을 것 같습니다.

@zsmalla zsmalla merged commit da59182 into main Mar 18, 2024
@zsmalla zsmalla deleted the sumin-#300 branch March 18, 2024 10:05
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Programmers] 프렌즈4블록

2 participants