99클럽 코테 스터디 7일차 TIL + 정렬
📍오늘의 학습 키워드
- 이중 우선순위 큐
- 정렬 알고리즘
- 우선순위 큐 사용법
- 배열의 부분 합 계산
📝 공부한 내용 본인의 언어로 정리하기
오늘은 이중 우선순위 큐와 정렬 알고리즘을 활용한 문제 풀이에 대해 공부했다. 주어진 배열에서 인접한 두 요소의 합을 계산하고, 이를 통해 최대 점수와 최소 점수를 계산하는 방법을 배웠다. 또한, 우선순위 큐를 사용하여 효율적으로 데이터를 관리하는 방법도 익혔다.
📖 오늘의 회고
📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지
문제: 주어진 배열을 k개의 가방으로 나누어 최댓값과 최솟값의 점수 차이를 구하는 문제에서, 중간에 올바른 값이 나오지 않는 문제를 발견했다.
시도: 초기에는 우선순위 큐를 사용하여 최솟값과 최댓값을 관리했으나, 배열의 부분 합을 이용하는 방식으로 다시 접근했다.
사실 문제 풀이가 잘 안되어서 다른 솔루션을 참고했다. 생각보다 간소하게 푼 사람의 코드를 보고 다시 풀어보았다. 뭔가 문제 접근 방식이 잘못되었던..
🤔 어떻게 해결했는지
🔖 문제 해결 링크 (https://develop-tracking.tistory.com/58)
우선순위 큐 대신, 배열의 부분 합을 계산하여 이를 정렬한 뒤 가장 작은 값과 가장 큰 값을 선택하는 방식으로 해결했다. 이를 통해 각 가방의 점수를 계산하고 최종적으로 점수 차이를 구할 수 있었다.
🤓 무엇을 새롭게 알았는지
- 우선순위 큐를 사용하여 최솟값과 최댓값을 효율적으로 관리할 수 있다는 점
- 배열의 부분 합을 계산하고 이를 정렬하는 방법이 복잡한 문제를 단순화할 수 있다는 점
- Arrays.sort를 사용하여 배열을 오름차순으로 정렬할 수 있다는 점
복잡성
- 시간 복잡도: O(nlogn)
- 공간 복잡도: O(n)
⏳ 내일 학습할 것은 무엇인지
- 더 복잡한 정렬 알고리즘과 우선순위 큐의 응용
- 다양한 데이터 구조와 알고리즘을 사용하여 복잡한 문제를 해결하는 방법
- 효율적인 코드 작성 및 최적화 방법
'알고리즘 & 자료구조 > 스터디 (Algorithm Study)' 카테고리의 다른 글
[99클럽 코테 스터디] 📝 Day9. Java 너란 탐색. 친해지자료구조 (0) | 2024.05.28 |
---|---|
[99클럽 코테 스터디] 📝 Day8. 정렬이란 (0) | 2024.05.27 |
[99클럽 코테 스터디] 📝 Day6. 꾸준함2 (0) | 2024.05.26 |
[99클럽 코테 스터디] 📝 Day5. 꾸준하게 (0) | 2024.05.26 |
[99클럽 코테 스터디] 📝 Day4. 회사… 힘들다.. 하지만.. (1) | 2024.05.23 |