Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Mar 14, 2025

🧷 문제 링크

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

🧭 풀이 시간

12분

👀 체감 난이도

✏️ 문제 설명

1부터 N까지의 양의 정수 i를 각각 w[i]개씩 일렬로 배치한다.
j번째 step에서, p[j]번째의 수를 순열에 추가한다.
각 step이 끝나면, 방금 추가한 수를 순열에서 모두 없앤다.

모든 step이 끝난 후의 순열을 구해보자.

🔍 풀이 방법

[사용한 알고리즘]

  • 세그먼트 트리

문제에서 주어진 그대로 세그먼트 트리로 구현하면 된다.

  1. 세그먼트 트리의 i번째 말단 정점에 w[i]를 저장하고, 구간 합을 저장하도록 구성한다.
  2. 각 step마다, 1부터 k까지의 구간 합이 p[j]인 곳의 인덱스 k를 구해 출력한다.

⏳ 회고

디버깅 용으로 각 step마다 매번 버퍼를 flush해줬는데 시간 초과가 났다.
flush가 많이 무겁나보다

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Mar 14, 2025
@ShinHeeEul ShinHeeEul merged commit b45b8bb into main Mar 14, 2025
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.

3 participants