Merged
Conversation
zaqquum
approved these changes
May 5, 2025
Collaborator
There was a problem hiding this comment.
저는 아래처럼 작성했는데 for문을 리스트 컴프리헨션 사용해서 한 줄로 축약한 것이 인상적입니다.
for line in lines:
cnt += line // mid
YoonYn9915
approved these changes
May 6, 2025
Member
YoonYn9915
left a comment
There was a problem hiding this comment.
WIL로 문제유형 및 핵심을 잘 정리해 주신 것 같습니다. 적어주신 것처럼 새로운 유형 많이 풀어보고 습득해야 될 것 같아요!
"탐색 대상은 답이 아니라 '조건'이다, 일반적인 이분 탐색은 값을 찾는 데 집중하지만, 이 문제는 mid가 될 수 있는 가장 큰 값을 찾기 위해 조건(cnt >= C)을 체크하고, 탐색 범위를 조정해 나간다."
🔥2025-05 챌린지 진행 상황👉 그래프
👉 DP
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🌱WIL
매개변수 탐색에 대해 알게 되었다. 기존 이진 탐색은 정렬된 값 중에서 특정 원소를 찾는 방식이었다. 하지만 이 문제는 정답이 될 수 있는 "범위 내 값"을 이진 탐색으로 좁혀가야 했다. 처음에는 이게 너무 헷갈렸는데 이런 문제를 풀어볼 수 있어서 정말 다행이라는 생각이 들었다. 관련 문제를 많이 풀어서 내걸로 만들어야겠다.단지번호붙이기문제에서는 "플러드 필"이라는 개념을 새로 알게 되었다.미로 탐색문제도 풀면서 오랜만에 그래프 문제인 BFS 문제를 풀게 되었다. DFS로 접근해야 할 지, BFS로 접근해야 할 지 헷갈리는 게 좀 있었지만 문제들을 풀면서 다시 리마인드 하게 되었다.🚀주간 목표 문제 수: 4개
백준 #2110. 공유기 설치: 이분탐색 / 골드4
정리한 링크: (바로가기)
🚩플로우 (선택)
dist를 이진 탐색한다.left = 1,right = 가장 먼 집 간 거리mid값을 기준 거리로 공유기를 설치할 수 있는지를 판별한다.mid)를 출력한다.🚩제출한 코드
💡TIL
기존 이진 탐색은 정렬된 값 중에서
특정 원소를 찾는 방식이었다.하지만 이 문제는 **정답이 될 수 있는 "범위 내 값"**을 이진 탐색으로 좁혀가야 했다.
처음에는 이게 왜 이진 탐색인지 헷갈렸지만,
"조건을 만족하는 값이 있는지 여부"를 탐색하는 과정이 매개변수 탐색이라는 것을 이해하고 나서 개념이 정리되었다.
이진 탐색 = 정답을 직접 찾는 것이 아니라, 가능한지를 판단하며 답을 좁히는 과정임을 확실히 이해할 수 있었다.
백준 #1654. 랜선 자르기: 이분탐색 / 실버2
정리한 링크: (바로가기)
🚩플로우 (선택)
K,N: 현재 가진 랜선의 수K, 필요한 랜선의 수N을 입력받는다.arr:K개의 랜선 길이를 리스트로 저장한다.start = 1: 만들 수 있는 최소 길이 (0은 나눌 수 없으므로 1부터 시작)end = max(arr): 만들 수 있는 최대 길이 (가장 긴 랜선)start가end이하일 때까지 반복한다.mid)mid = (start + end) // 2: 현재 시도할 랜선의 길이로 설정cnt = sum(x // mid for x in arr): 각 랜선을mid길이로 잘라서 만들 수 있는 랜선 총합을 구한다.cnt >= N이면: 현재 길이로도N개 이상 만들 수 있음 → 더 긴 길이도 가능할 수 있음 →start = mid + 1cnt < N이면: 랜선이 부족함 → 더 짧은 길이 시도 →end = mid - 1end는 조건을 만족하는 최대 길이이므로 결과로 출력한다.🚩제출한 코드
💡TIL
백준 #2178. 미로 탐색: 그래프 / 실버1
정리한 링크: (바로가기)
🚩플로우 (선택)
N,M: 미로의 세로, 가로 크기를 입력받는다.graph: 각 행마다 정수 리스트로 변환된 미로 정보를 2차원 리스트로 저장한다.bfs(x, y)함수는 시작 좌표(0, 0)에서 출발하여 목적지(N-1, M-1)까지 최소 칸 수를 구하는 함수이다.dx,dy배열을 정의한다.(x, y)를 큐에 삽입하고 BFS 탐색을 시작한다.(x, y)를 꺼내고, 4방향에 대해 이동 가능한 위치인지 체크한다.graph[nx][ny]값을graph[x][y] + 1로 갱신 (거리 누적)graph[N-1][M-1]에 저장된 값이 최소 칸 수이므로 이를 반환한다.print(bfs(0, 0))을 통해 결과 출력🚩제출한 코드
💡TIL
백준 #2667. 단지번호 붙이기: 그래프 / 실버1
정리한 링크: (바로가기)
🚩플로우 (선택)
n을 입력받고,n x n크기의 2차원 리스트graph를 생성한다.dx,dy리스트를 정의한다.(x, y)좌표를 시작으로 BFS를 수행한다.0으로 바꿔 재방문을 방지한다.(i, j)를 순회하며graph[i][j] == 1인 경우 BFS를 호출한다.result리스트에 저장한다.result리스트를 오름차순으로 정렬한다.len(result))와 각 단지에 속한 집의 수를 한 줄씩 출력한다.🚩제출한 코드