일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- string
- Tree
- Binary Search
- Number Theory
- java
- 코테
- 자바
- 구현
- sorting
- Stack
- array
- Counting
- database
- Binary Tree
- greedy
- hash table
- Data Structure
- dynamic programming
- simulation
- SQL
- Method
- two pointers
- 코딩테스트
- Matrix
- 파이썬
- Class
- bit manipulation
- Math
- implement
- geometry
- Today
- Total
목록string (235)
코린이의 소소한 공부노트
1. Input 1) String sequence 2) String word 2. Output 1) word가 sequence에서 반복되는 최대 수를 반환 3. Constraint 1) 1 0){ if(sequence.contains((word.repeat(rep)))){ ans = rep; break; } rep--; } return ans; } } - 91%, 60%
1. Input 1) int[] releaseTimes 2) String keysPressed 2. Output 1) keysPressed[i]를 releaseTimes[i-1]에 눌렀다가 releaseTimes[i]에 떼는 작업을 했을 때, 한번에 가장 오래 누른 키를 char로 반환 - keysPressed[0]은 0에 눌렀다가 releaseTimes[0]에 뗐다. - 답이 여러 개라면 사전순으로 나열했을 때 가장 뒤에 있는 것을 반환 3. Constraint 1) releaseTimes.length == keysPressed.length == n 2) 2
1. Input 1) String path - 움직일 순서가 동서남북(E,W,S,N)으로 적혀있다. 2. Output 1) (0,0)에서 시작해 path를 따라 움직일 때 지나왔던 경로를 겹쳐 지나게 되면 true, 아니면 false를 반환 - path를 따라 움직일 때 해당 방향으로 1씩 움직인다. 3. Constraint 1) 1 Output: true 설명: - 겹치는 경로가 없다. - (0,0)에서 겹치게 된다. 5. Code 1) 첫 코드(2023/06/13) class Solution { public boolean isPathCrossing(String path) { HashSet s = new HashSet(); s.add("0,0"); boolean cross = false; int x =..
1. Input 1) String s 2. Output 1) s에서 가장 바깥 소괄호를 없앤 나머지를 반환 - s는 유효한 괄호들로 이루어져 있다. 3. Constraint 1) 1 Output: "()()()()(())" Input: s = "()()" -> Output: "" 설명: - “(()())”와 “(())”로 이루어져 있다. -> 가장 바깥 소괄호를 없애면 “()()”와 “()”이 된다. - “(()())”와 “(())”와 “(()(()))”로 이루어져 있다. -> 가장 바깥 소괄호를 없애면 “()()”와 “()”와 “()(())”이 된다. - “()”와 “()”로 이루어져 있다. -> 가장 바깥 소괄호를 없애면 둘다 “”이 된다. 5. Code 1) 첫 코드(2023/06/07) class..
1. Input 1) String[] words 2. Output 1) 각 단어들에 공통으로 나타나는 알파벳을 하나씩 담은 리스트를 반환 - 모든 단어에 a가 2개씩 있다면 반환하는 리스트에도 a가 2개 있어야 한다. - 정렬 순서는 상관 없다. 3. Constraint 1) 1
1. Input 1) String s 2. Output 1) 다음 조건을 만족하는 큰 그룹의 시작점과 끝점을 담은 리스트의 리스트를 반환 - 그룹은 같은 문자로 이루어진 s의 부분 문자열이다. - 그룹의 길이가 3 이상일 때 큰 그룹으로 취급한다. - 리스트에 담아 반환할 때는 시작점을 기준으로 오름차순 정렬을 해야 한다. 3. Constraint 1) 1 Output: [] Input: s = "abcdddeeeeaabbbcd" -> Output: [[3,5],[6,9],[12,14]] 설명: - 큰 그룹은 “xxxx"뿐이다. - “a", "b", "c" 모두 큰 그룹이 아니다. - 큰 그룹은 “ddd", "eeee", "bbb"의 3개가 있다. 5. Code 1) 첫 코드(2023/05/31) cla..
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. 입력 - 첫째 줄에 단어의 개수 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..
1. Input 1) String s 2) int k 2. Output 1) s를 n개의 그룹으로 나누고, 그룹 사이에는 ‘-’를 1개씩 넣은 문자열을 반환 - 이때 첫 번째 그룹을 제외한 나머지 그룹은 반드시 1개 이상 k개 이하의 문자가 들어가야 한다. 3. Constraint 1) 1
1. Input 1) String s 2. Output 1) s의 한 부분 문자열을 반복해서 s를 만들 수 있다면 true, 만들 수 없다면 false를 반환 3. Constraint 1) 1 Output: false 5. Code 1) 첫 코드(2023/05/19) class Solution { public boolean repeatedSubstringPattern(String s) { boolean find = false; for(int i=1 ; i