일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- greedy
- sorting
- hash table
- Tree
- string
- Class
- geometry
- SQL
- simulation
- java
- Binary Tree
- Matrix
- Stack
- Number Theory
- 파이썬
- 코테
- two pointers
- Method
- database
- bit manipulation
- implement
- Data Structure
- Counting
- 자바
- 코딩테스트
- Binary Search
- Math
- array
- dynamic programming
- 구현
- Today
- Total
목록코딩테스트 풀이/JAVA (963)
코린이의 소소한 공부노트
목표: 해시에 관련된 빌트인 라이브러리를 사용하지 않고 해시맵 구현하기 - 생성자 - put(), get(), remove() 1. Input 1) 생성자: 없음 2) put(): int key, int value 3) get(): int key 4) remove(): int key 2. Output 1) put(): void. 해시맵에 (key, value) 추가. 만약 key가 있다면 값을 value로 변경 2) get(): key에 해당하는 value 반환. 만약 없다면 -1을 반환 3) remove(): void. key가 있다면 (key, value) 삭제 3. Constraint 1) 0
목표: 입력된 수 중 k번째로 큰 수를 반환하는 클래스 구현 - 생성자 - int add(int val) 1. Input 1) 생성자: k, int[] nums 2) add(): val - nums에 추가할 값 2. Output 1) add(): val을 추가한 후의 nums에서 k번째로 큰 값을 반환 3. Constraint 1) 1
1. Input 1) TreeNode root 2) int val 2. Output 1) 이진 탐색 트리인 root에서 노드 값이 val인 subtree를 반환 2) 만약 그런 트리가 없다면 null을 반환 3. Constraint 1) 노드 개수의 범위는 [1, 5000]이다. 2) 1
1. Input 1) int[] nums 2. Output 1) nums에서 가장 많이 있는 요소의 빈도 수를 nums의 정도라고 표현할 때, nums의 정도와 같은 정도를 가진 부분 배열 중 가장 작은 부분 배열의 길이를 반환 - 부분 배열은 연속적이어야 한다. 3. Constraint 1) 1
1. Input 1) String s 2. Output 1) s의 부분 문자열 중 0과 1의 개수가 같은 부분 문자열의 개수를 반환 - 이때 0은 0끼리, 1은 1끼리 붙어있어야 한다. 3. Constraint 1) 1 Output: 4 설명: - “00110011”에서 조건을 만족하는 부분 문자열은 “0011”, “01”, “1100”, “10”, “0011”, “01”의 6개이다. 이때 “00110011”은 0은 0끼리, 1은 1끼리 있지 않기 때문에 조건을 만족하지 못한다. - “10101”에서 조건을 만족하는 부분 문자열은 "10", "01", "10", "01"의 4개이다. 5. Code 1) 첫 코드(2023/05/29) class Solution { public int countBinaryS..
1. Input 1) TreeNode root 2. Output 1) root의 노드의 값 중 2번째로 작은 수를 반환 2) 만약 그런 값이 없다면 -1을 반환 3. Constraint 1) 트리 내의 노드 수의 범위는 [1, 25]이다. 2) 1 Output: -1 5. Code 1) 첫 코드(2023/05/29) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) ..
1. Input 1) int[] img 2. Output 1) img에 3*3 필터를 씌워 이미지를 부드럽게 바꾼 결과를 반환 - img[i][j] == img[i][j]와 이를 둘러싸고 있는 8개의 셀의 값의 평균(총 9개의 평균)
1. Input, Output, Example - myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 반환 2. Constraint 1) 1 ≤ myString의 길이 ≤ 100,000 2) myString은 알파벳 소문자로 이루어진 문자열이다. 3. Code 1) 첫 코드(2023/05/25) import java.util.*; class Solution { public int[] solution(String myString) { List list = new ArrayList(); for(int i=0 ; i
1. 입력 - 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. - 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어져 있다. 시리얼 번호는 중복되지 않는다. 2. 출력 - 첫째 줄부터 차례대로 N개의 줄에 한줄에 하나씩 다음 조건에 따라 시리얼 번호를 정렬한 결과를 출력한다. // 시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다. - A와 B의 길이가 다르면, 짧은 것이 먼저 온다. - 만약 서로 길이가 같다면, A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다) - 만약 1,2번 둘 조건으로도 비교할 수 없으면, 사전순으로 비..
1. 입력 - 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) - 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 2. 출력 - 다음 조건에 따라 정렬하여 단어들을 출력한다. // 길이가 짧은 것부터 출력한다. // 길이가 같으면 사전 순으로 출력한다. // 중복된 단어는 하나만 남기고 제거해야 한다. 3. 예제 4. 코드 1) 첫 코드 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead..