일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- dynamic programming
- 파이썬
- simulation
- 자바
- 코딩테스트
- bit manipulation
- Matrix
- Number Theory
- SQL
- sorting
- two pointers
- Binary Tree
- geometry
- array
- implement
- 코테
- Data Structure
- Tree
- string
- 구현
- Class
- database
- Method
- Math
- greedy
- java
- hash table
- Stack
- Counting
- Binary Search
- Today
- Total
목록자바 (584)
코린이의 소소한 공부노트
1. Input 1) 문자열 s 2) 이진 변환은 다음 2단계를 거친 것이 1회다. - 1단계: s에 있는 0을 제거한다. - 2단계: 제거 후의 문자열의 길이가 a라면, a를 이진 문자열로 치환한다. 2. Output 1) 문자열이 “1”이 될 때까지 이진 변환을 반복했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 담은 배열 3. Constraint 1) s의 길이는 1 이상 150,000 이하 2) s에는 “1“이 최소 하나 이상 포함되어 있다. 3) s는 “0”과 “1”로만 이루어져 있다. 4. Example Input: s=“01110” -> Output: {3,3} 설명: - “01110”에서 0을 2개 제거 -> “111”의 길이는 3 -> 3은 이진 문자열로 “11” -..
1. Input 1) int 배열 nums 2) nums의 요소는 잡은 폰켓몬의 종류에 따른 번호 2. Output 1) N마리의 폰켓몬 중 N/2마리를 가져갈 때 가장 많은 종류의 폰켓몬을 선택하도록 방법을 찾아 그때의 폰켓몬 종류 번호의 개수를 반환 3. Constraint 1) nums는 폰켓몬의 종류 번호가 담긴 1차원 배열 2) nums의 길이(N)는 1 이상 10,000 이하의 자연수이며, 항상 짝수로 주어진다. 3) 폰켓몬의 종류 번호는 1 이상 200,000 이하의 자연수 4) 가장 많은 종류의 폰켓몬을 선택하는 방법이 여러 가지인 경우에도, 선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 반환하면 된다. 4. Example Input: nums={3,3,3,2,2,4} -> Output..
1. Input 1) 정수 a 2) 정수 b 2. Output 1) 2016년 a월 b일의 요일을 나타내는 문자열 2) 요일의 이름은 일요일부터 토요일까지 각각 “SUN”, “MON”, “TUE”, “WED”, “THU”, “FRI”, “SAT” 3. Constraint 1) 2016년은 윤년 2) 2016년 a월 b일은 실제로 있는 날로, 13월 26일같은 날짜는 주어지지 않는다. 4. Example Input: a=5, b=24 -> Output: “TUE” 설명: 2016년 5월 24일은 화요일이다. 5. Code 1) 첫 코드(2022/??) String answer = ""; int[] day = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int c..
1. Input 1) 문자열 s 2. Output 1) s의 가운데 글자를 담은 문자열 2) s의 길이가 짝수라면 가운데 두 글자를 반환 3. Constraint 1) s는 길이가 1 이상 100 이하인 문자열 4. Example Input: s=“abc” -> Output: “b” Input: s=“abcd” -> Output: “bc” 5. Code 1) 첫 코드(2022/??) String answer = ""; int l = s.length(); if (l%2 == 0) return s.substring(l/2-1,l/2+1); else return "" + s.charAt(l/2); 2) 다시 풀어본 코드(2022/11/26) if(s.length()%2==1) s = s.substring(s...
1. Input 1) int 배열 arr 2) arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 함 2. Output 1) 제거하고 남은 수를 담은 배열 2) 정렬해서 반환하는 것이 아닌, 원래의 순서를 유지해야 한다. 3. Constraint 1) arr의 크기: 1,000,000 이하의 자연수 2) arr의 원소는 0 이상 9 이하의 정수 4. Example Input: arr={1,1,3,3,0,1,1} -> Output: {1,3,0,1} 5. Code 1) 첫 코드(2022/??) import java.util.*; if(arr.length == 1) return arr; List list = new ArrayList(); list.add(arr[0]); for(int i=1 ..
1. Input 1) int 배열 arr 2) 자연수 divisor 2. Output 1) arr의 요소들 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열 2) divisor로 나누어 떨어지는 요소가 없다면 배열에 –1을 담아 반환 3. Constraint 1) arr은 자연수를 담은 배열 2) arr에 중복되는 숫자는 없음 3) divisor는 자연수 4) arr은 길이 1 이상인 배열 4. Example Input: arr={10,9,7,5}, divisor=5 -> Output: {5,10} Input: arr={3,2,5}, divisor=10 -> Output: {-1} 5. Code 1) 첫 코드(2022/??) import java.util.Arrays; int[] answ..
1. Input 1) 정수 a 2) 정수 b 2. Output 1) a와 b 사이에 있는 모든 정수의 합 3. Constraint 1) a와 b가 같은 경우는 둘 중 아무 수나 반환 2) a와 b는 -10,000,000 이상 10,000,000 이하인 정수 3) a와 b의 대소관계는 정해져있지 않다. 4. Example Input: a=5, b=3 -> Output: 12 설명: 5 + 4 + 3 = 12 5. Code 1) 첫 코드(2022/??) long answer = 0; if(a == b) return a; else return (long)(Math.abs(a-b)+1) * (long)(a+b) / 2; 2) return문 1개로 변경(2022/11/26) return (long)(Math.ab..
1. Input 1) 대문자와 소문자가 섞여있는 문자열 s 2. Output 1) s에 'p'의 개수와 'y'의 개수를 비교해 같으면 true, 다르면 false를 반환 3. Constraint 1) 'p', 'y' 모두 하나도 없는 경우는 true 반환 2) 개수를 비교할 때 대소문자를 구별하지 않는다. 3) 문자열 s의 길이 : 50 이하의 자연수 4) s는 알파벳으로만 이루어져 있다. 4. Example Input: s=“pPoooyY” -> Output: true Input: s=“pyy” -> Output: false 5. Code 1) 첫 코드(2022/??) s = s.toLowerCase(); int p=0, y=0; for(int i=0 ; i
1. Input 1) 문자열 s 2. Output 1) s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로 만든 문자열 3. Constraint 1) s은 길이 1 이상인 문자열 2) s는 영문 대소문자로만 구성되어 있다. 3) 대문자는 소문자보다 작은 것으로 간주한다. 4. Example Input: s="Zbcdefg" -> Output: "gfedcbZ" 5. Code 1) 첫 코드(2022/??) import java.util.Arrays; String answer = ""; int[] n = new int[s.length()]; for(int i=0 ; i=0 ; i--) answer += (char)n[i] + ""; return answer; 2) 다시 풀어본 코드(2022/11/25) ..
1. Input 1) 문자열 s 2. Output 1) s의 길이가 4 혹은 6이고, 숫자로만 구성되어 있다면 true, 그렇지 않다면 false 반환 3. Constraint 1) s는 길이 1 이상 8 이하인 문자열 2) s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있다. 4. Example Input: s=“a234” -> Output: false Input: s=“1234” -> Output: true 5. Code 1) 첫 코드(2022/??) if(s.length() == 4 || s.length() == 6) // 길이 만족 return s.matches("[0-9]{4}") || s.matches("[0-9]{6}"); return false; 2) return문이 여러 ..