일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- 자바
- geometry
- bit manipulation
- sorting
- implement
- Data Structure
- Math
- Class
- Method
- array
- Counting
- 코테
- Stack
- simulation
- hash table
- two pointers
- Binary Tree
- Tree
- 구현
- dynamic programming
- Binary Search
- java
- database
- greedy
- string
- 코딩테스트
- 파이썬
- Number Theory
- Matrix
- Today
- Total
목록코딩테스트 풀이/JAVA (963)
코린이의 소소한 공부노트
1. Input 1) String s - s는 0과 1로 이루어져 있다. 2. Output 1) s를 빈 문자열이 아닌 문자열 2개로 나눴을 때 얻을 수 있는 최고 점수를 반환 - 왼쪽 문자열에서는 0의 개수를, 오른쪽 문자열에서는 1의 개수를 구한다. - 점수는 위에서 구한 둘의 합으로 계산한다. 3. Constraint 1) 2
1. Input 1) String s 2. Output 1) s에 있는 숫자와 영어 소문자가 같은 종류끼리는 인접해있지 않게 재배열한 문자열을 반환 3. Constraint 1) 1 Output: "0a1b2c" 설명 - 모두 소문자이므로 같은 종류끼리 인접할 수 밖에 없기 때문에 빈 문자열 반환 - 원래 문자열("a0b1c2")도 답이 될 수 있다. 5. Code 1) 첫 코드(2023/04/12) Stack alpha = new Stack(); Stack num = new Stack(); for(int i=0 ; i
1. Input 1) int n 2. Output 1) 다음 조건을 만족하는 문자열을 반환 - 문자는 영어 소문자만 사용한다. - 각 문자가 나오는 횟수는 홀수여야 한다. - 문자열의 길이는 n이다. 3. Constraint 1) 1 Output: "xy" 5. Code 1) 첫 코드(2023/04/11) String answer = ""; if(n%2==0){ while(answer.length()
1. Input 1) String date1 2) String date2 2. Output 1) date1과 date2의 날짜 수 차이를 반환 3. Constraint 1) 주어지는 입력은 1971년부터 2100년 사이의 날짜이다. 4. Example Input: date1 = "2019-06-29", date2 = "2019-06-30" -> Output: 1 Input: date1 = "2020-01-15", date2 = "2019-12-31" -> Output: 15 5. Code 1) 첫 코드(2023/04/11) // 메인 int y1 = Integer.valueOf(date1.substring(0,4)); int y2 = Integer.valueOf(date2.substring(0,4)); ..
1. Input 1) String s 2. Output 1) 아래 단계를 모두 끝낸 후의 s를 반환 - s의 별을 1개 고른다. - 별의 왼쪽에 있는 별이 아닌 문자중 고른 것과 가장 가까운 문자를 없앤다. - 고른 별을 없앤다. - s에 별이 없을 때까지 반복한다. 3. Constraint 1) 1
1. Input 1) int n 2. Output 1) 길이가 n이면서 요소의 합이 0인 int[] 반환 3. Constraint 1) 1
1. Input 1) String s 2. Output 1) s에 있는 숫자들을 다음 규칙에 맞게 변환한 결과를 반환 - 1 ~ 9는 a ~ i로 변환한다. - 10# ~ 26#은 j ~ z로 변환한다. 3. Constraint 1) 1 "10#" , "k" -> "11#" , "a" -> "1" , "b" -> "2" 5. Code 1) 첫 코드(2023/04/11) String answer = ""; int i = s.length()-1; while(i>=0){ if(s.charAt(i)=='#'){ answer = (char)(Integer.valueOf(s.substring(i-2,i))-1+'a') + answer; i -= 2; } else answer = (char)(s.charAt(i)-1..
1. Input 1) int n 2. Output 1) 다음 조건을 만족하는 a와 b를 찾아 배열에 담아 반환 - a, b는 10진수로 표현했을 때 0이 없는 양의 정수이다. - a+b == n 3. Constraint 1) 2 0 && nozero){ if(x%10==0) nozero = false; x /= 10; } } if(nozero){ // 둘다 0이 없다면 답으로 반환 answer[0] = i; answer[1] = n-i; break; } } return answer;
1. 입력 - 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. - 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. - 다음 M개의 줄에는 검사해야 하는 문자열들이 주어진다. - 입력으로 주어지는 문자열은 알파벳 소문자로만 이루어져 있으며, 길이는 500을 넘지 않는다. 집합 S에 같은 문자열이 여러 번 주어지는 경우는 없다. 2. 출력: 첫째 줄에 M개의 문자열 중에 총 몇 개가 집합 S에 포함되어 있는지 출력한다. 3. 코드 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { Buff..
1. 입력 - 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. - 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. - 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. - 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다 2. 출력: 첫째 줄에 입력으로 주어진 M개의 수에 대해서, 각 수가 적힌 숫자 카드를 상근이가 가지고 있으면 1..