일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Binary Search
- simulation
- Binary Tree
- array
- Data Structure
- 코테
- Stack
- 자바
- database
- Class
- dynamic programming
- SQL
- sorting
- Matrix
- geometry
- string
- Method
- java
- Counting
- 코딩테스트
- hash table
- implement
- 구현
- bit manipulation
- Math
- two pointers
- greedy
- Number Theory
- Tree
- 파이썬
- Today
- Total
목록string (235)
코린이의 소소한 공부노트

화은이는 이번 영어 시험에서 틀린 문제를 바탕으로 영어 단어 암기를 하려고 한다. 그 과정에서 효율적으로 영어 단어를 외우기 위해 영어 단어장을 만들려 하고 있다. 화은이가 만들고자 하는 단어장의 단어 순서는 다음과 같은 우선순위를 차례로 적용하여 만들어진다. (1) 자주 나오는 단어일수록 앞에 배치한다. (2) 해당 단어의 길이가 길수록 앞에 배치한다. (3) 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다 M보다 짧은 길이의 단어의 경우 읽는 것만으로도 외울 수 있기 때문에 길이가 M이상인 단어들만 외운다고 한다. 화은이가 괴로운 영단어 암기를 효율적으로 할 수 있도록 단어장을 만들어 주자. 1. 입력 - 첫째 줄에는 영어 지문에 나오는 단어의 개수 N과 외울 단어의 길이 기준이 되는 M이 공..
1. Input 1) String s 2. Output 1) s의 부분 문자열 중에서 같은 문자가 없는 가장 긴 부분 문자열의 길이를 반환 3. Constraint 1) 0 Output: 1 Input: s = "pwwkew" -> Output: 3 5. Code 1) 첫 코드 import java.util.*; class Solution { public int lengthOfLongestSubstring(String s) { int answer = 0; for(int i=0 ; i

문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 한다. (1) 먼저 첫 글자를 읽는다. 이 글자를 x라고 하자. (2) 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 센다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리한다. (3) s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복한다. 남은 부분이 없다면 종료한다. (4) 만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하고, 종료한다. 1. Input, Output, Example - 문자열 s가 매개변수로 주어질 때, 위 과정과 같이 문자열들로 분해하고, 분해한 문자열의 개수를 ..

두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 한다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용한다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1이고, X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0이다. 1. Input, Output, Example - X, Y의 짝꿍을 문자열로 반환 2. Constraint 1) 3 ≤ X, Y의 길이(자릿수) ≤ 3,000,000 2) X, Y는 0으로 시작하지 않는다. 3. Code 1) 첫 코드 class Solution { public String solution(String X, String Y) { int[] x = new in..
1. Input 1) String[] words 2. Output 1) words에서 찾을 수 있는 순서쌍의 최대 수를 반환 - words[i]와 words[j]가 순서쌍이 되려면 i Output: 0 5. Code class Solution { public int maximumNumberOfStringPairs(String[] words) { boolean[] visited = new boolean[words.length]; int count = 0; for(int i=0 ; i
1. Input 1) String s 2. Output 1) s에서 다음과 같은 작업을 수행했을 때 만들 수 있는 문자열의 길이 중 가장 작은 것을 반환 - 0부터 s.length()-1 사이의 인덱스 i를 고른다. - i번째 문자를 c라고 할 때, i를 기준으로 가장 가까운 c를 왼쪽에서 1개 오른쪽에서 1개를 지운다. - 더 이상 지울 수 없을 때까지 반복한다. 3. Constraint 1) 1 “abc" - 더 이상 지울 수 있는 것이 없으므로 3을 반환한다. 5. Code 1) 첫 코드 class Solution { public int minimizedStringLength(String s) { Set set = new HashSet(); for(int i=0 ; i
1. Input 1) String num 2. Output 1) num에서 후행 0을 뺀 결과를 반환 3. Constraint 1) 1 Output: "123" 5. Code class Solution { public String removeTrailingZeros(String num) { int i = num.length()-1; while(num.charAt(i)=='0') i--; return num.substring(0,i+1); } } - 100%, 94%
1. Input 1) String s 2. Output 1) s의 문자를 1번에 1개씩 바꾸는 작업을 했을 때, 최소한의 작업 횟수로 만들 수 있는 팰린드롬 중 사전순으로 가장 앞에 오는 문자열을 반환 - 팰린드롬(palindrome)은 앞에서부터 읽으나 뒤에서부터 읽으나 같은 문자열을 말한다. 3. Constraint 1) 1 Output: "abba" 5. Code 1) 첫 코드 class Solution { public String makeSmallestPalindrome(String s) { char[] arr = s.toCharArray(); for(int i=0 ; i
1. Input 1) String s 2. Output 1) s에서 “AB" 또는 "CD”를 계속 없앨 때 나올 수 있는 결과 중 가장 짧은 길이를 반환 3. Constraint 1) 1
1. Input 1) String[] details 2. Output 1) 주어진 정보를 보고 나이가 60세보다 많은 승객의 수를 반환 - details[i]는 i번째 승객의 정보를 나타낸 길이 15의 문자열이다. - 첫 10문자는 폰 번호를 나타낸다. - 그 다음 문자는 성별을 나타낸다. - 그 다음 2문자는 나이를 나타낸다. - 마지막 2문자는 좌석 번호를 나타낸다. 3. Constraint 1) 1 '0') count++; } return count; } } - 84%, 97%