-
Notifications
You must be signed in to change notification settings - Fork 1
[한종욱-13주차 알고리즘 스터디] #66
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
base: main
Are you sure you want to change the base?
Conversation
*/ | ||
private static void binarySearch() { | ||
long left = 0; // 최소 시간 | ||
long right = (long)6e14; // 최대 시간 (충분히 큰 값) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
큰 차이는 나지 않겠지만 최대 시간을 운행 시간이 가장 작은 놀이기구 x N
으로 설정하면 더 빠른 시간에 찾을 수 있을 것 같습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
맞아요 그렇게 최대 시간을 설정하면 더 빨리 찾을 거 같아요
|
||
// 각 놀이기구가 태울 수 있는 방문객 수와 마지막 방문객 탑승 시간 계산을 위한 배열 | ||
long count[] = new long[m]; // 각 놀이기구가 태울 수 있는 방문객 수 | ||
Arrays.fill(count, 1); // 초기에 각 놀이기구는 1명씩 태움 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
각 놀이기구 별 시간에 따른 태운 승객 수를 계산할 때 저는 나머지와 몫의 경우에 따라 나눠서 계산했는데, 배열을 1로 채우고 시작하면 몫만 계산하면 되어 더 간단하고 직관적인 풀이인 것 같습니다.
한종욱:13주차/boj16118.java
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
늑대의 dist 배열을 빠른 상태, 느린 상태에 따른 2중 배열로 저장하는 방법이 인상적입니다! 이 부분을 해결하지 못해 dfs로 구현하고 시간 초과에 걸렸는데 2중 배열로 처리하는 방법이 있었군요..!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
말숭이 문제가 생각나서 바로 적용해봤습니다! 같은 그래프 문제니까요!
🚀 싸피 15반 알고리즘 스터디 13주차 [한종욱]
📌 문제 풀이 개요
✅ 문제 해결 여부
💡 풀이 방법
문제 1: 마법사 상어와 복제
문제 난이도
Gold 1
문제 유형
구현
접근 방식 및 풀이
단계를 나눠서 풀었습니다.
2, 3단계에서 주의사항이 있습니다.
2단계에서 물고기가 이동하지 못하면, 제자리에 같은 방향으로 대기합니다.
3단계에서 상어는 지나간 장소를 또 지나갈 수 있습니다.
한번 먹은 물고기는 또 먹을 수 없기 때문에, DFS처리가 까다로웠습니다.
시간복잡도:$O(s)$
문제 2: 궁금한 민호
문제 난이도
Gold 2
문제 유형
접근 방식 및 풀이
문제 3: 놀이 공원
문제 난이도
Gold 1
문제 유형
이분 탐색, 매개변수 탐색
접근 방식 및 풀이
이분 탐색을 할 변수는 시간입니다. 해당 시간으로 n명이상의 아이가 놀이기구를 탈 수 있으면 마지막에 탄 놀이기구의 번호를 저장하고 시간을 줄입니다. 시간이 부족하면 시간을 늘립니다.
마지막에 탄 놀이기구를 확인하는 방법은
시간복잡도:$O(m \log{6 \times 10^{14}})$
문제 4: BFS 스페셜 저지
문제 난이도
Gold 3
문제 유형
BFS
접근 방식 및 풀이
탐색한 순서대로 다음 노드를 탐색해야 합니다. 처음엔 깊이로 접근했다가 틀렸습니다.
같은 깊이의 노드들을 set에 넣고 배열의 인덱스 순서대로 탐색했습니다.
시간복잡도:$O(n)$
문제 5: 청소년 상어
문제 난이도
Gold 1
문제 유형
구현
접근 방식 및 풀이
문제 6: 시계 사진들
문제 난이도
Platinum 4
문제 유형
kmp
접근 방식 및 풀이
문제 7: 달빛 여우
문제 난이도
Gold 1
문제 유형
다익스트
접근 방식 및 풀이
여우의 최단경로는 기본 다익스트라로 계산하고, 늑대의 최단경로는 홀수번에 가중치/2로 계산하고 짝수번에 가중치x2로 계산했습니다.
늑대의 홀수번, 짝수번 가중치가 다르기 때문에 늑대의 dist는 2차원 배열로 선언했습니다.
시간복잡도: O(mlogn)
문제 8: 주사위 윳놀이
문제 난이도
Gold 2
문제 유형
접근 방식 및 풀이