Skip to content

Conversation

oncsr
Copy link
Contributor

@oncsr oncsr commented May 28, 2025

🚀 싸피 15반 알고리즘 스터디 18주차 [권혁준]

📌 문제 풀이 개요

  • 이번 PR에서는 다음 5문제의 풀이를 포함합니다.
  • 각 문제에 대한 풀이 과정과 접근 방식을 설명합니다.

✅ 문제 해결 여부

  • 마법사 상어와 블리자드
  • 대표 선수
  • Strahler 순서
  • 로봇 조종하기
  • 책 나눠주기

💡 풀이 방법

문제 1: 마법사 상어와 블리자드

문제 난이도

문제 유형

접근 방식 및 풀이


문제 2: 대표 선수

문제 난이도

Gold 2

문제 유형

  • 정렬
  • 우선순위 큐

접근 방식 및 풀이

각 학급에서 한 명씩만 고른다면, 고른 학생 중에서 가장 최소의 능력치를 가진 학생이 변하지 않는 한, 다른 학생의 변화는 아무런 이득을 주지 않습니다.
그래서, 가장 최소의 능력치를 가진 학생을 찾은 뒤 해당 학급의 그 다음으로 낮은 능력치를 가진 학생으로 대체합니다.

우선순위 큐를 이용해서 최소 능력치를 가진 학생을 매번 찾아낼 수 있습니다.


문제 3: Strahler 순서

문제 난이도

Gold 3

문제 유형

  • 위상 정렬

접근 방식 및 풀이

문제가 직관적이라, 위상 정렬의 순서대로 Strahler 순서를 전이해주고 자신의 차례가 왔을 때 전이받은 값들로 Strahler 순서를 새로 계산했습니다.


문제 4: 로봇 조종하기

문제 난이도

Gold 2

문제 유형

  • DP

접근 방식 및 풀이

지났던 칸을 또 지날 수 없다는 조건 떄문에, 같은 행에서는 좌/우 중 한 방향으로만 이동할 수 있습니다.

따라서, 각 칸을 왼쪽에서부터 온 경우와 오른쪽에서부터 온 경우로 나누어 생각했습니다.

두 경우 모두에 대한 최댓값을 dp로 구해 관리해주고, 둘 중 max값으로 다음 행에 전파하였습니다.


문제 5: 책 나눠주기

문제 난이도

Gold 2

문제 유형

  • 그리디 알고리즘

접근 방식 및 풀이

사람을 기준으로 생각하려니까 너무 복잡하게만 생각이 들었습니다.
그래서 책을 1번부터 하나씩 골라놓고, 이 책을 누구한테 줄 지 결정하는 방식으로 해결을 시도했습니다.

책을 번호의 오름차순으로 분배할 거니까, 아직 책을 받지 못한 각 사람 [a,b]에 대해 a <= (책 번호) 이기만 하면 책을 분배할 수 있습니다.
이러면 당연히 b가 가장 작은 사람에게 책을 줄 수밖에 없게 됩니다.

이 논리를 확장시키면, 그냥 b가 작은 순으로 오름차순 정렬을 때리고 풀어도 무방할 것 같습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant