Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Matrix
- two pointers
- dynamic programming
- java
- 코딩테스트
- greedy
- string
- geometry
- bit manipulation
- 구현
- database
- Binary Tree
- Stack
- implement
- 자바
- array
- sorting
- SQL
- Number Theory
- Class
- Method
- Binary Search
- 코테
- Tree
- Math
- simulation
- 파이썬
- hash table
- Counting
- Data Structure
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.0] x 사이의 개수 본문
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<Integer> list = new ArrayList<>();
for(int i=0 ; i<myString.length() ; i++){
int j = i;
while(j<myString.length() && myString.charAt(j)!='x') j++;
list.add(j-i);
i = j;
}
if(myString.charAt(myString.length()-1)=='x')
list.add(0);
int[] ans = new int[list.size()];
for(int i=0 ; i<ans.length ; i++)
ans[i] = list.get(i);
return ans;
}
}
2) split()의 -1에 의문을 품고 다시 해본 코드(2023/05/25)
import java.util.*;
class Solution {
public int[] solution(String myString) {
String[] str = myString.split("x",-1);
int[] ans = new int[str.length];
for(int i=0 ; i<ans.length ; i++)
ans[i] = str[i].length();
return ans;
}
}
- 1번보다 좋은 성능을 지닌 코드다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 671. Second Minimum Node In a Binary Tree (0) | 2023.05.29 |
---|---|
[LeetCode/Easy] 661. Image Smoother (0) | 2023.05.29 |
[백준 온라인 저지] 1431. 시리얼 번호 (0) | 2023.05.24 |
[백준 온라인 저지] 1181. 단어 정렬 (0) | 2023.05.24 |
[LeetCode/Easy] 530. Minimum Absolute Difference in BST (0) | 2023.05.23 |