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
- Data Structure
- java
- hash table
- greedy
- two pointers
- SQL
- Math
- Tree
- string
- bit manipulation
- dynamic programming
- 코테
- 자바
- Binary Tree
- Method
- Counting
- Binary Search
- 구현
- geometry
- database
- implement
- sorting
- array
- 파이썬
- Stack
- 코딩테스트
- simulation
- Number Theory
- Class
- Matrix
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 500. Keyboard Row 본문
1. Input
1) 문자열 배열 words
2. Output
1) 쿼티 키보드 세 줄 중 1줄로만 타이핑이 가능한 문자열을 담은 배열
2) 쿼티 키보드의 구성
첫 번째 줄: qwertyuiop
두 번째 줄: asdfghjkl
세 번째 줄: zxcvbnm
3. Constraint
1) 1 <= words.length <= 20
2) 1 <= words[i].length <= 100
3) words[i]는 영어 대소문자로만 이루어져있다.
4. Example
Input: words={"Hello","Alaska","Dad","Peace"} -> Output: {"Alaska","Dad"}
설명: 각 단어를 타이핑 하는 데 필요한 키보드의 줄 번호
“Hello”: 1, 2
"Alaska“: 2
"Dad“: 2
"Peace": 1, 2, 3 이므로 한 줄만으로 타이핑이 가능한 {"Alaska","Dad"}을 반환한다.
5. Code
1) 첫 코드(2022/06/18)
List<Integer> list = new ArrayList();
for(int i=0 ; i<words.length ; i++){
if(words[i].toLowerCase().matches("[qwertyuiop]+")
|| words[i].toLowerCase().matches("[asdfghjkl]+")
|| words[i].toLowerCase().matches("[zxcvbnm]+"))
list.add(i);
}
String[] result = new String[list.size()];
for(int i=0 ; i<result.length ; i++)
result[i] = words[list.get(i)];
return result;
2) 다시 풀어본 코드(2022/11/30)
import java.util.*;
ArrayList<String> list = new ArrayList<String>();
String[] keys = {"[qwertyuiop]+", "[asdfghjkl]+", "[zxcvbnm]+"};
for(int i=0 ; i<words.length ; i++){
for(String k : keys){
if(words[i].toLowerCase().matches(k)){
list.add(words[i]);
break;
}
}
}
return list.toArray(new String[] {});
- 1번과 시간은 비슷하지만 공간절약은 더 많이 된다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 14. Longest Common Prefix (0) | 2022.11.30 |
---|---|
[LeetCode/Easy] 504. Base 7 (0) | 2022.11.30 |
[LeetCode/Easy] 476. Number Complement (0) | 2022.11.30 |
[LeetCode/Easy] 461. Hamming Distance (0) | 2022.11.30 |
[LeetCode/Easy] 434. Number of Segments in a String (0) | 2022.11.30 |