Skip to content

[박준서-17주차 알고리즘 스터디] #100

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

parkjs82
Copy link
Contributor

🚀 싸피 15반 알고리즘 스터디 17주차 [박준서]

📌 문제 풀이 개요

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

✅ 문제 해결 여부

  • 문제 1: 어항 정리
  • 문제 2: 휴게소 세우기
  • 문제 3: 줄세우기
  • 문제 4: 동통 부분 문자열
  • 문제 5: 전구와 스위치

💡 풀이 방법

문제 1: 어항 정리

문제 난이도
Platinum 5

문제 유형
구현

접근 방식 및 풀이

어항의 수가 줄어들지 않기 떄문에 초기에 행렬을 만들어 재사용했다
roll 메서드의 설명을 잘 보고 만들어야 했다

이후에는 문제의 조건을 잘 따라가면 됐는데
문제를 완벽하게 파악하지 않고 풀어서 오히려 오래걸렸다


문제 2: 휴게소 세우기

문제 난이도
Gold 4

문제 유형
이분 탐색

접근 방식 및 풀이

이 코드는 파라메트릭 서치(Parametric Search) 개념을 사용하지만, 이분 탐색 대신 선형 탐색으로 구현
휴게소 간 최대 거리를 i라고 할 때, 각 구간에서 필요한 추가 휴게소 개수는 (구간 길이 - 1) / i
모든 구간에서 필요한 추가 휴게소 개수의 합이 M 이하인 최소 i를 찾는다
이 i 값이 휴게소 간 최대 거리의 최솟값이 됨


문제 3: 줄세우기

문제 난이도
Gold 4

문제 유형
LIS

접근 방식 및 풀이

처음 문제를 봤을 떄 그리디 방법 혹은 백트래킹으로 접근했다
하지만 아무리 생각해도 아이디어가 떠오르지 않아서 결국 다른 풀이를 참조했다

LIS로 최장 부분 순열을 찾은 뒤 그 값들의 위치는 고정하고, 나머지 요소들만 움직여주면 된다
LIS의 활용 방법이 더 많은 것 같아 더 깊게 고민해 봐야겠다


문제 4: 동통 부분 문자열

문제 난이도
Gold 5

문제 유형
LCS

접근 방식 및 풀이

LCS 개념을 알고 있어서 구현에 시간이 걸렸지만
오래 고민하지 않고 풀수 있었다


문제 5: 전구와 스위치

문제 난이도
Gold 4

문제 유형
그리디

접근 방식 및 풀이

3개의 전구가 있을 때, 시작 지점을 제외하고, 맨 앞 전구의 상태를 정하는 것은 두번째 지점 외에는 없다
따라서, 첫 번째 스위치를 눌렀을 때와 안눌렀을 때 두 케이스를, 결과 상태와 같도록 진행해, 최소값을 찾아주면 된다.


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