Skip to content

[허민권-11주차 알고리즘 스터디] #58

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 3 commits into
base: main
Choose a base branch
from

Conversation

initcatcher
Copy link

@initcatcher initcatcher commented Apr 5, 2025

🚀 싸피 15반 알고리즘 스터디 11주차 [허민권]

📌 문제 풀이 개요

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

✅ 문제 해결 여부

  • 직사각형으로 나누기
  • 경로 찾기
  • 컨베이어 벨트 위의 로봇
  • 이중 우선순위 큐
  • 구간 나누기2

💡 풀이 방법

문제 1: 직사각형으로 나누기

문제 난이도
골드 4

문제 유형
구현

접근 방식 및 풀이
케이스별로 나눠서 풀면 되는데 생각보다 케이스를 나누는것이 까다롭다는것을 알았습니다!
자주 부분합들을 구해야하기 때문에 구간합을 구해서 각 연산마다 써먹을 수 있도록 합니다.

모든 케이스는 아래와 같이 나타납니다!
image


문제 2: 경로 찾기

문제 난이도
골드 4

문제 유형
BFS

접근 방식 및 풀이
간단하게 bfs 방식으로 해결했습니다.
visited 배열은 이전에 지나왔던 위치를 저장합니다.
마지막 위치에 도달한경우 처음위치가 나올때까지 재귀로돌면서 경로를 구합니다.


문제 3: 컨베이어 벨트 위의 로봇

문제 난이도
골드 5

문제 유형
구현, 시뮬레이션

접근 방식 및 풀이
처음에는 인덱싱 & 리스트로 풀려고 했는데 로봇움직이는것과 벨트 회전이 까다롭다는 것을 알았습니다.
deque 을 사용해서 시뮬레이션 코드를 구현했습니다. 적절한 자료구조를 선택하는것이 정신건강에 이롭습니다.


문제 4: 이중 우선순위 큐

문제 난이도
골드 4

문제 유형
자료구조, 트리, 우선순위 큐

접근 방식 및 풀이


문제 5: 구간 나누기2

문제 난이도
골드 4

문제 유형
구현

접근 방식 및 풀이

@initcatcher initcatcher changed the title 11주차 [허민권-11주차 알고리즘 스터디] Apr 5, 2025
Copy link

@Gyulguma Gyulguma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

자바 코드만 보다가 파이썬 코드를 보고 분석하면서 리뷰하다보니 한번 환기되는 기분이 들어 좋았습니다. 전체적으로 로직을 이해하는 데 어려움이 없었고, 한 주동안 고생많으셨습니다! 이번 주도 같이 파이팅해봐요!

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 경로 추적을 BFS가 진행되면서 각 큐에 들어가는 노드가 각 경로를 가지고 있도록 구현하였는데 visited 배열을 통해 경로를 찾아가는 방법이 효율적이라 생각됩니다! visited를 항상 boolean 타입으로 선언하고 방문처리 용도로만 생각했는데 더 활용하는 방법을 고민해봐야겠네요.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리뷰 감사합니다! 파이썬에서는 메모리도 조금 신경써야해서 바깥에다 두고 체크하는 방식으로 구현했습니다. :)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

자바에도 rotate()가 있는지 찾아보니 Collections.rotate() 라는 게 있었습니다. 앞으로는 직접 구현하는 것도 좋지만 제공되는 라이브러리가 있는지 확인하는 것도 필요하다고 생각이 들었습니다(정신건강에 이롭다는 것에 동의합니다). 생각보다 이미 많은 것이 구현되고 제공되고 있었다는 것을 알게 되었습니다! ㅎㅎ

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저도 자바의 rotate 는 처음 알게되었네요! 감사합니다 :)

@initcatcher initcatcher marked this pull request as ready for review April 8, 2025 13:45
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.

2 participants