Skip to content

Conversation

@0224LJH
Copy link
Contributor

@0224LJH 0224LJH commented Aug 22, 2025

🧷 문제 링크

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

🧭 풀이 시간

120분

👀 체감 난이도

✏️ 문제 설명

특정 구간의 집들의 색들을 새롭게 칠하거나, 특정 구간의 집들에 존재하는 색의 수를 알고 싶어졌다.

작업은 다음과 같은 두가지로 이루어 진다.

“C x y z” : x번과 y번, 그리고 그 사이에 있는 모든 집을 z번 색으로 색칠한다.
“Q x y” : x번과 y번, 그리고 그 사이에 있는 모든 집에 존재하는 색의 가짓수를 출력한다.
민호가 사용할 색의 종류는 (1번, 2번, … T번) 이라 하고 처음 모든 집은 1번으로 색칠되어 있다고 생각한다.

작업이 “Q x y”일 때의 경우 x번과 y번, 그리고 그 사이에 있는 모든 집에 존재하는 색의 가짓수를 출력한다.

🔍 풀이 방법

레이지 세그먼트 트리를 연습하기 위해서 푼 문제이기에 당연히 그것부터 도입했다. 그렇게 천천히 도입해서 1시반 30정도 걸렸을 때 풀긴 풀었는데, 시간 초과가 간신히 안된 상태였다.
그렇기에 다른 사람들의 코드를 보니 현재 노드에서 몇가지 색상을 가지고 있냐를 Set이 아니라 비트마스킹으로 표현하고 있었다.

이를 도입하니 정상적인 풀이 시간이 나와 해결하였다.

⏳ 회고

입력값의 제한을 잘 보자. 색상의 제한이 30이길래 왜그런가 했는데 int로 비트마스킹 하라는 뜻이었다..

@0224LJH 0224LJH added success 👍 해설을 보지 않고 풀었을 때 hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때 labels Aug 22, 2025
@ShinHeeEul ShinHeeEul merged commit 8f9e678 into main Aug 22, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때 success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants