일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Data Structure
- dynamic programming
- 코테
- two pointers
- Binary Search
- array
- java
- Math
- Class
- Counting
- simulation
- Matrix
- 코딩테스트
- SQL
- implement
- Stack
- Number Theory
- 파이썬
- database
- bit manipulation
- Method
- greedy
- sorting
- geometry
- Binary Tree
- 구현
- hash table
- string
- 자바
- Tree
- Today
- Total
목록java (1063)
코린이의 소소한 공부노트
1. Input 1) int n - 그래프의 노드의 개수 - 노드에는 0번부터 n-1번까지의 번호가 붙어 있다. 2) int[][] edges - edges[i] = [u_i, v_i]. u_i번 노드와 v_i번 노드가 연결되어 있다. 3) int source 4) int destination 2. Output 1) 주어진 그래프에서 source에서 destination으로 가는 경로가 있다면 true, 없다면 false를 반환 3. Constraint 1) 1
1. Input 1) String s 2. Output 1) s를 fancy string으로 만든 결과를 반환 - fancy string이란 같은 문자가 연속으로 3개 이상 나오지 않는 문자열을 말한다. - 이때 s를 fancy string으로 만들기 위해 삭제한 문자의 개수가 최소가 되어야 한다. 3. Constraint 1) 1 Output: "aabaa" Input: s = "aab" -> Output: "aab" 5. Code 1) 첫 코드(2023/06/21) class Solution { public String makeFancyString(String s) { StringBuilder sb = new StringBuilder(); int i = 0; while(i
1. Input 1) int[][] ranges - ranges[i] = [start_i, end_i] 2) int left 3) int right 2. Output 1) [left, right] 범위의 정수가 모두 ranges에 담겨 있다면 true, 아니면 false를 반환 3. Constraint 1) 1
1. Input 1) String s 2. Output 1) s에 있는 연속된 1의 개수 a와 연속된 0의 개수 b를 모두 세어 찾은 후, 가장 큰 a가 가장 큰 b보다 크면 true, 작거나 같으면 false를 반환 3. Constraint 1) 1 Output: false 설명: - 가장 큰 a=2 > 가장 큰 b=1 이므로 true - 가장 큰 a=3 == 가장 큰 b=3 이므로 false 5. Code 1) 첫 코드(2023/06/20) class Solution { public boolean checkZeroOnes(String s) { int i = 0, ones = 0, zeros = 0; while(izeros; } } - 77%, 56%
1. Input 1) String s 2. Output 1) s에 1이 연속되어 나타나는 부분을 셌을 때, 1개면 true, 아니면 false를 반환 3. Constraint 1) 1 Output: true 설명: - 1이 나타나는 부분이 “1”, “1”의 2개이다. - 1이 나타나는 부분이 “11”의 1개이다. 5. Code 1) 첫 코드(2023/06/20) class Solution { public boolean checkOnesSegment(String s) { int count = 0; // number of segment of 1s for(int i=0 ; i
1. Input 1) int x 2) int y 3) int[][] points 2. Output 1) 다음 조건을 만족한 points의 점의 인덱스를 반환 - (x,y)와 x좌표 또는 y좌표가 같아야 한다. - 멘하탄 거리가 가장 짧아야 한다. - 멘하탄 거리는 |x2-x1| + |y2-y1|으로 계산한다. - 조건을 만족하는 점이 여러개라면 points에서의 인덱스가 가장 작은 것을 반환한다. 2) 조건을 만족하는 점이 없다면 -1을 반환 3. Constraint 1) 1
임계 경로란 어떤 일을 완료하기까지 걸리는 여러 가지 경로 중 가장 긴 시간이 걸리는 경로를 말한다. 월드 나라는 모든 도로가 일방통행인 도로이고, 싸이클이 없다. 그런데 어떤 무수히 많은 사람들이 월드 나라의 지도를 그리기 위해서, 어떤 시작 도시로부터 도착 도시까지 출발을 하여 가능한 모든 경로를 탐색한다고 한다. 이 지도를 그리는 사람들은 사이가 너무 좋아서 지도를 그리는 일을 다 마치고 도착 도시에서 모두 다 만나기로 하였다. 그렇다고 하였을 때 이들이 만나는 시간은 출발 도시로부터 출발한 후 최소 몇 시간 후에 만날 수 있는가? 즉, 마지막에 도착하는 사람까지 도착을 하는 시간을 의미한다. 어떤 사람은 이 시간에 만나기 위하여 1분도 쉬지 않고 달려야 한다. 이런 사람들이 지나는 도로의 수를 카..
게임 플레이에 들어가는 시간은 상황에 따라 다를 수 있기 때문에, 모든 건물을 짓는데 걸리는 최소의 시간을 이용하여 근사하기로 하였다. 물론, 어떤 건물을 짓기 위해서 다른 건물을 먼저 지어야 할 수도 있기 때문에 문제가 단순하지만은 않을 수도 있다. 예를 들면 스타크래프트에서 벙커를 짓기 위해서는 배럭을 먼저 지어야 하기 때문에, 배럭을 먼저 지은 뒤 벙커를 지어야 한다. 여러 개의 건물을 동시에 지을 수 있다. 편의상 자원은 무한히 많이 가지고 있고, 건물을 짓는 명령을 내리기까지는 시간이 걸리지 않는다고 가정하자. 1. 입력 - 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. - 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 ..
1. Input 1) String s 2. Output 1) s를 0과 1이 번갈아가며 나타나는 이진 문자열로 바꾸는데 필요한 최소 변환 횟수를 반환 3. Constraint 1) 1