일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- geometry
- simulation
- 코딩테스트
- two pointers
- Data Structure
- java
- Binary Tree
- hash table
- Stack
- Tree
- Matrix
- greedy
- bit manipulation
- Math
- array
- Binary Search
- 구현
- 코테
- 파이썬
- 자바
- string
- Class
- Number Theory
- implement
- dynamic programming
- sorting
- Counting
- SQL
- database
- Method
- Today
- Total
목록java (1063)
코린이의 소소한 공부노트
타로는 자주 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..
방향 그래프가 주어졌을 때, 그 그래프를 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
1. Input 1) String s 2. Output 1) s에 있는 알파벳 중 대소문자가 모두 있는 알파벳을 대문자로 반환 - 여러 개라면 그 중 가장 큰(순서상 뒤에 나오는) 알파벳을 반환 2) 조건을 만족하는 알파벳이 없다면 빈 문자열을 반환 3. Constraint 1) 1
1. Input 1) int[] nums 2. Output 1) nums에 나오는 짝수 중 가장 많이 나타나는 짝수를 반환 - 만약 빈도 수가 같은 짝수가 여러 개라면, 그 중 가장 작은 것을 반환 2) 조건에 맞는 숫자를 찾을 수 없다면 -1을 반환 3. Constraint 1) 1
1. 입력 - 첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10) 2. 출력 - 첫째 줄에 A+B를 출력한다. 3. 예제 4. 코드 import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print(Integer.valueOf(br.readLine()) + Integer.valueOf(br.readLine())); } } - 14212KB, 128ms
1. 입력 - 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. 2. 출력 - 첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. - 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다. 3. 예제 - 150 × 266 × 427 = 17,037,300 4. 코드 import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Inpu..