Skip to content

[20260317] BOJ / P1 / 지형 평탄화 탐색기 / 권혁준#2027

Merged
ShinHeeEul merged 1 commit intomainfrom
khj20006
Mar 16, 2026
Merged

[20260317] BOJ / P1 / 지형 평탄화 탐색기 / 권혁준#2027
ShinHeeEul merged 1 commit intomainfrom
khj20006

Conversation

@oncsr
Copy link
Copy Markdown
Contributor

@oncsr oncsr commented Mar 16, 2026

🧷 문제 링크

https://www.acmicpc.net/problem/33908

🧭 풀이 시간

$\infty$

👀 체감 난이도

✏️ 문제 설명

N*M 격자 모양의 지형이 있고, 각 칸의 높이는 1 이상 5 이하이다.
두 종류의 쿼리를 처리해보자.

  • 1 x y h : x행 y열의 높이를 h로 변경
  • 2 r c : r행 c열의 작업계획도가 주어진다. 이 작업계획도를 지형의 가능한 곳들에 매핑하여 높이를 낮췄을 때, 매핑된 곳의 높이가 모두 동일해지는 경우의 수를 구하기

🔍 풀이 방법

높이 정보를 0 이상 4 이하로 변경한다면, 모든 가능한 작업계획도를 5진법으로 해싱할 수 있다.

type[r][c] = r행 c열의 작업계획도에 대한 Count 클래스 라고 정의했다.
Count 클래스에는 각 해시값에 대한 경우의 수를 int 배열에 저장한다.
해시값의 범위는 [0, 5^9)이며, 이는 1953125 미만이기 때문에 TreeMap 대신 배열을 선택했다.

모든 매핑에 대한 경우의 수를 미리 다 구해놓고, 변경될 때마다 변경된 곳에 대한 해시만 다시 계산해서 넣어주는 방식으로 구현했다.

⏳ 회고

드디어

@oncsr oncsr self-assigned this Mar 16, 2026
@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Mar 16, 2026
@ShinHeeEul ShinHeeEul merged commit 3792e3c into main Mar 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants