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 |
Tags
- greedy
- Data Structure
- Stack
- Tree
- Binary Search
- Number Theory
- Math
- array
- Counting
- 코딩테스트
- Class
- 자바
- string
- java
- Binary Tree
- 코테
- bit manipulation
- Method
- simulation
- database
- dynamic programming
- sorting
- 구현
- two pointers
- implement
- Matrix
- 파이썬
- hash table
- SQL
- geometry
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 557. Reverse Words in a String III 본문
1. Input
1) 문자열 s
2. Output
1) s에서 단어별로 앞뒤를 뒤집은 문장을 담은 문자열
3. Constraint
1) 1 <= s.length <= 5 * 104
2) s에는 단어가 1개 이상 있다.
3) 모든 단어들은 공백 문자 1개로 구분되어 있다.
4) 공백 문자는 단어를 구분짓는 용도 외에는 쓰이지 않는다.
4. Example
Input: s=“Thank you” -> Output: “knahT uoy”
5. Code
1) 첫 코드(2022/06/14)
String[] words = s.split(" ");
String result = "";
for(int i=0 ; i<words.length ; i++){
String tmp = "";
for(int j=0 ; j<words[i].length() ; j++){
tmp += words[i].charAt(words[i].length()-1-j) + "";
} // for j
result += tmp + " ";
} // for i
return result.substring(0, result.length()-1);
2) 다시 풀어본 코드(2022/12/02)
String[] words = s.split(" ");
for(int i=0 ; i<words.length ; i++){
char[] c = words[i].toCharArray();
for(int j=0 ; j<c.length/2 ; j++){
char tmp = c[j];
c[j] = c[c.length-1-j];
c[c.length-1-j] = tmp;
} // for j
words[i] = new String(c);
} // for i
return String.join(" ", words);
- 1번보다 빠르고, 공간절약도 많이 한다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 27. Remove Element (0) | 2022.12.02 |
---|---|
[LeetCode/Easy] 561. Array Partition (0) | 2022.12.02 |
[LeetCode/Easy] 520. Detect Capital (0) | 2022.12.02 |
[LeetCode/Easy] 509. Fibonacci Number (0) | 2022.12.01 |
[LeetCode/Easy] 507. Perfect Number (0) | 2022.12.01 |