일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- two pointers
- hash table
- Matrix
- string
- greedy
- Class
- Binary Search
- Stack
- geometry
- dynamic programming
- SQL
- Counting
- implement
- Math
- Number Theory
- 코딩테스트
- 파이썬
- database
- bit manipulation
- Tree
- 구현
- Data Structure
- array
- 코테
- sorting
- simulation
- 자바
- Method
- Binary Tree
- Today
- Total
목록분류 전체보기 (1234)
코린이의 소소한 공부노트
인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 P_i분이다. 줄을 서 있는 사람의 수 N과 각 사람이 돈을 인출하는데 걸리는 시간 P_i가 주어졌을 때, 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하는 프로그램을 작성하시오. 1. 입력 - 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. - 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) 2. 출력 - 첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다. 3. 예제 4. 코드 import java.util.*; impor..
준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 1. 입력 - 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) - 둘째 줄부터 N개의 줄에 동전의 가치 A_i가 오름차순으로 주어진다. (1 ≤ A_i ≤ 1,000,000, A_1 = 1, i ≥ 2인 경우에 A_i는 A_i-1의 배수) 2. 출력 - 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 3. 예제 4. 코드 import java.util.*; import java.io.*; class Main { public static v..
타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 1. 입력 - 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. 2. 출력 - 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. 3. 예제 4. 코드 import java.util.*; class Main{ public static void main(String[] args){ Scanner scan = ne..
1. Problem - 그리디 알고리즘을 이용하여 거스름돈으로 지급할 동전의 최소한의 개수를 구해보자. - 그리디 알고리즘은 가장 큰 것부터 또는 가장 작은 것부터 선택하며 최적의 답을 찾아가는 알고리즘으로, 탐욕법이라고도 불린다. - 그리디 알고리즘은 정렬, 다이나믹 프로그래밍과 함께 사용되는 경우가 대다수이다. - 그리디 알고리즘이 항상 최적의 답을 도출하지는 않는다. 2. Input 1) 거스름돈 액수 3. Output 1) 거스름돈을 500원, 100원, 50원, 10원짜리 동전을 이용해서 지급할 때 필요한 동전의 최소 개수 4. Example 거스름돈으로 지급해야 하는 금액: 947원 // 500 < 947 < 1000 500원: 1 // 남은 금액: 447원 // 400 < 447 < 500 ..
방향 그래프가 주어졌을 때, 그 그래프를 SCC들로 나누는 프로그램을 작성하시오. 1. 입력 - 첫째 줄에 두 정수 V(1 ≤ V ≤ 10,000), E(1 ≤ E ≤ 100,000)가 주어진다. 이는 그래프가 V개의 정점과 E개의 간선으로 이루어져 있다는 의미이다. - 다음 E개의 줄에는 간선에 대한 정보를 나타내는 두 정수 A, B가 주어진다. 이는 A번 정점과 B번 정점이 연결되어 있다는 의미이다. 이때 방향은 A → B가 된다. - 정점은 1부터 V까지 번호가 매겨져 있다. 2. 출력 - 첫째 줄에 SCC의 개수 K를 출력한다. - 다음 K개의 줄에는 각 줄에 하나의 SCC에 속한 정점의 번호를 출력한다. 각 줄의 끝에는 -1을 출력하여 그 줄의 끝을 나타낸다. 각각의 SCC를 출력할 때 그 안에..
강호네 회사에는 직원이 N명이 있고, 해야할 일이 M개가 있다. 직원은 1번부터 N번까지 번호가 매겨져 있고, 일은 1번부터 M번까지 번호가 매겨져 있다. 각 직원은 한 개의 일만 할 수 있고, 각각의 일을 담당하는 사람은 1명이어야 한다. 각각의 직원이 할 수 있는 일의 목록이 주어졌을 때, M개의 일 중에서 최대 몇 개를 할 수 있는지 구하는 프로그램을 작성하시오. 1. 입력 - 첫째 줄에 직원의 수 N과 일의 개수 M이 주어진다. (1 ≤ N, M ≤ 1,000) - 둘째 줄부터 N개의 줄의 i번째 줄에는 i번 직원이 할 수 있는 일의 개수와 할 수 있는 일의 번호가 주어진다. 2. 출력 - 첫째 줄에 강호네 회사에서 할 수 있는 일의 개수를 출력한다. 3. 예제 4. 코드 import java.u..
농부 존은 소 축사를 완성하였다. 축사 환경을 쾌적하게 유지하기 위해서, 존은 축사를 M개의 칸으로 구분하고, 한 칸에는 최대 한 마리의 소만 들어가게 계획했다. 첫 주에는 소를 임의 배정해서 축사를 운영했으나, 곧 문제가 발생하게 되었다. 바로 소가 자신이 희망하는 몇 개의 축사 외에는 들어가기를 거부하는 것이다. 농부 존을 도와 최대한 많은 수의 소가 축사에 들어갈 수 있도록 하는 프로그램을 작성하시오. 축사의 번호는 1부터 M까지 매겨져 있다. 1. 입력 - 첫째 줄에 소의 수 N과 축사의 수 M이 주어진다. (1 ≤ N, M ≤ 200) - 둘째 줄부터 N개의 줄에는 각 소가 들어가기 원하는 축사에 대한 정보가 주어진다. i번째 소가 들어가기 원하는 축사의 수 Si (0 ≤ Si ≤ M)이 먼저 ..
1. Input 1) int[] nums 2) int[] queries 2. Output 1) 다음을 따라 만든 배열을 반환 - i번째 요소에 nums의 요소들의 합이 queries[i] 이하인 nums의 부분 배열 중 길이가 가장 긴 것을 찾아 그 길이를 저장 - 부분 배열은 nums상에서 연속적일 필요는 없다. 3. Constraint 1) n == nums.length 2) m == queries.length 3) 1 4 5. Code 1) 첫 코드(2023/06/26) class Solution { public int[] answerQueries(int[] nums, int[] queries) { int[] ans = new int[queries.length]; Arrays.sort(nums); ..
1. Input 1) TreeNode root 2. Output 1) root에 있는 조건식을 계산한 결과를 반환 - leaf node: 0(false), 1(true) - non-leaf node: 2(OR), 3(AND) 3. Constraint 1) 노드 수의 범위는 [1, 1000]이다. 2) 0