목차
문제 이름 및 링크
공백으로 구분하기2
https://school.programmers.co.kr/learn/courses/30/lessons/181868
출제 사이트
프로그래머스
문제유형 및 난이도
문제유형: 문자열
난이도: 0레벨
코드 설명
주어진 문자열에서 공백을 삭제하고 얻은 단어의 배열만 반환하는 문제였습니다.
단순히 공백 기준으로 split하였고 얻어진 단어가 빈 문자가 아니라면 리스트에 넣은 후 배열로 반환해주는 방법론으로 풀었습니다.
import java.util.*;
class Solution {
public String[] solution(String my_string) {
String[] my_strings = my_string.split(" ");
List<String> list = new LinkedList<>();
for(String str : my_strings) {
if(str.equals(" ") || str.equals("")) {
// do Nothing
} else {
list.add(str);
}
}
return list.toArray(new String[list.size()]);
}
}
0레벨 문제였지만 다른 사람들의 코드에서 새로운걸 얻어 갔습니다.
trim 메서드로 앞뒤 공백을 자르고 정규화로 문자가 하나 이상 있는 경우만 얻어가는 방법도 재밌어보였습니다.
class Solution {
public String[] solution(String my_string) {
return my_string.trim().split("[ ]+");
}
}
혹은 백준에서 문제 풀 때, 입력값을 받기 위해 자주 사용하던 StringTokenizer의 원리를 이용하여 푼 사례도 재밌었습니다.
import java.util.*;
class Solution {
public String[] solution(String my_string) {
StringTokenizer st = new StringTokenizer(my_string);
int N = st.countTokens();
String[] result = new String[N];
for (int n = 0;n < N;n++)
result[n] = st.nextToken();
return result;
}
}
문자열 문제는 항상 쓰던 방식의 메서드들로 문제 해결을 진행하는 것 같은데요.
이렇게 문자열에 지원되는 다양한 메서드들로 해결하는 방법들이 참 재밌는 것 같습니다.
'알고리즘 > 코딩테스트 준비' 카테고리의 다른 글
구명보트 - Greedy에서 Priority Queue 활용법 (0) | 2023.09.20 |
---|---|
마지막 두 원소 - 쉬운 문제라도 읽기 편한 코딩을 하자 (0) | 2023.08.21 |
카펫 - 수학적으로 풀었다고 생각한 풀이와 진짜 수학적 풀이 (0) | 2023.08.16 |
짝지어 제거하기 (0) | 2023.08.14 |
다음 큰 숫자 - Integer.bitCount()의 발견 (0) | 2023.08.14 |