99클럽 코테 스터디 6일차 TIL
·
코딩테스트/99클럽 4기
문제이해N개의 나무가 주어지며, 나무들의 높이는 0 최소 M미터의 나무를 가져가기 위해 설정할 수 있는 절단기의 최대 높이(H)를 구하라.최대값, 나무의 길이 제한, 나무의 높이 제한.3가지 키워드를 통해 이분탐색 문제인 것을 알 수 있다. 풀이이분탐색을 활용하여 특정 높이(H)를 구한다.주어진 나무들의 각 높이에서 특정 높이를 뺀 값을 모두 더한다(totalHeight).만약 특정 높이가 더 높다면 연산하지 않는다.계산된 값과 m을 비교하고 범위를 좁혀가며, 결과값을 찾는다.실패1public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextIn..
99클럽 코테 스터디 5일차 TIL
·
코딩테스트/99클럽 4기
BFS루트 노드 또는 임의의 노드에서 시작하여 인접한노드를 먼저 탐색하는 방법.시작 정점으로부터 가까운 정점을 먼저 방문하고, 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법이다.깊게 탐색하기 전에 넓게 탐색하는 것.정점 A 에 인접한 정점 중 방문하지 않은 정점 B와 C가 있다면B,C 를 모두 방문하고 방문한 순서대로 큐에 저장한다.그리고 가장 먼저 저장된 정점 B를 가져와 B의 인접 정점을 탐색하여 방문한다.큐에 저장된 정점이 없을 때까지 위 과정을 반복한다. 스택 프레임을 쌓는 DFS와 달리, 큐를 사용해 메모리를 보다 효율적으로 사용한다.4일차의 DFS 문제에 이어 BFS 문제이다.그래프 초기화, 간선 입력 등의 코드는 모두 동일하고, dfs 메서드만 변경해주면 될 것 같다.실패static v..
99클럽 코테 스터디 4일차 TIL
·
코딩테스트/99클럽 4기
문제 이해N개의 정점, M개의 간선으로 구성된 무방향 그래프모든 간선의 가중치는 1이다.인접 정점은 오름차순으로 방문한다.한 줄마다 입력된 u v 정점은 양방향 간선을 가진다.첫 번째 u v 입력을 보면, 정점 1은 정점 4를 방문할 수 있고, 정점 4 또한 정점 1을 방문할 수 있다. 예제 입력을 그림과 표로 나타내보자.시작 정점방문할 수 있는 정점12, 421, 3, 432, 441, 2, 350시작 정점들에 대한 인접 리스트를 만들고, 각 정점이 방문할 수 있는 정점 번호들을 리스트에 넣는다.정점 번호가 작은 순서대로 탐색하기 위해 리스트 안의 정점들을 오름차순으로 정렬한다.그리고 시작 정점(r)에서부터 DFS를 수행하여 방문 순서를 기록한다.import java.io.IOException;impo..
99클럽 코테 스터디 3일차 TIL
·
코딩테스트/99클럽 4기
문제 이해n명의 사람이 입국 심사를 위해 대기 중입국 심사대는 여러 개가 있고, 각 심사관마다 한 명을 처리하는 데 걸리는 시간이 다르다.모든 사람이 심사를 마치고 입국하는 데 걸리는 최소 시간을 구해야 한다.핵심은 특정 시간 동안 몇 명의 사람이 심사받을 수 있는지 계산하며 시간을 좁혀가야 한다. 그렇다면 특정 시간은 어떻게 지정해야 할까. 각 심사관이 한 명을 심사하는 데 걸리는시간은 1 가장 느림 심사관이 모든 인원을 처리하는 경우를 최대 시간으로 잡는다면 (1,000,000,000 * n명) 시간이 된다. 이분탐색을 활용하여 중간시간을 계산하고, 그 시간 동안 각 심사관이 몇 명을 처리할 수 있는지 계산해야 해 보자.처리 가능한 인원수(totalPeople)가 n명 이상이면 시간을 줄이고, n명 ..
99클럽 코테 스터디 2일차 TIL
·
코딩테스트/99클럽 4기
문제의 핵심은 2가지로 생각했다.두 번째 점프부터는 이전에 점프한 거리보다 1 이상 더 긴 거리를 뛰어야만 한다.N번 징검 다리는 반드시 밟아야 한다.   생각만 했지 손도 못댔다.노트에 징검다리 그림까지 그려가며 풀어봤지만 코드 한 줄 적지 못했다.작은 수부터 그림을 그려가며 규칙성을 파악하고자 했다.Nresult1, 213, 4, 526, 7, 8, 9310, 11, 12, 13, 144뭐하는건가 싶었다. 결국 검색의 도움을 받았다.등차수열연속하는 두 항의 차이가 모두 일정한 수열을 뜻한다.이때 두 항의 차이는 이 수열의 모든 연속하는 두 항들에 대해서 공통으로 나타나는 차이므로, 공차라고 한다.- 위키백과 왜 등차수열이 나왔을까.문제 조건 중, 이전 점프한 거리보다 1 이상 더 긴 거리를 뛰어야 한..
99클럽 코테 스터디 1일차 TIL
·
코딩테스트/99클럽 4기
처음 문제를 봤을 때, 눈에 띄었던 부분들이 있다.이제 형택이는 앞으로의 모든 게임에서 지지 않는다.게임 기록만약 Z가 절대 변하지 않는다면 -1을 출력한다.키워드 힌트로 이분탐색이 주어졌지만 처음에는 알고리즘을 적용하지 않고 시도해 보았다.import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double x = sc.nextDouble(); double y = sc.nextDouble(); int z = (int) ((y / x) * 100); int count = 0; ..