https://school.programmers.co.kr/learn/courses/30/lessons/12930
오답 :
class Solution {
public String solution(String s) {
String answer = s;
String[] words = answer.split(" ");
StringBuilder stringBuilder = new StringBuilder();
for (String word: words) {
for (int i=0; i < word.length(); i++) {
char ch = word.charAt(i);
if (i % 2 == 0) {
stringBuilder.append(Character.toUpperCase(ch));
} else {
stringBuilder.append(Character.toLowerCase(ch));
}
}
stringBuilder.append(" ");
}
answer = stringBuilder.substring(0, stringBuilder.length()-1);
return answer;
}
}
정답 :
class Solution {
public String solution(String s) {
String answer = s;
String[] words = answer.split(" ", -1);
StringBuilder stringBuilder = new StringBuilder();
for (String word: words) {
for (int i=0; i < word.length(); i++) {
char ch = word.charAt(i);
if (i % 2 == 0) {
stringBuilder.append(Character.toUpperCase(ch));
} else {
stringBuilder.append(Character.toLowerCase(ch));
}
}
stringBuilder.append(" ");
}
answer = stringBuilder.substring(0, stringBuilder.length()-1);
return answer;
}
}
String.split(String regex, int limit) : 문자열을 특정 구분자로 나누어 배열로 반환하는 메서드
public class Main {
public static void main(String[] args) {
String str = "apple,orange,banana";
String[] result = str.split(",", 2);
System.out.println(Arrays.toString(result));
}
}
// [apple, orange,banana]
- regex: 문자열을 나눌 기준이 되는 구분자. 정규 표현식으로 입력됩니다. 보통 공백 " " 또는 특정 문자 ",", "|" 등을 사용합니다.
- limit: 문자열을 나눌 갯수를 지정하는 옵션입니다. -1을 지정하면 모든 구분자를 포함해 나눕니다. 양수인 경우 값의 -1한 횟수로 나누고 나머지 부분은 배열의 마지막에 포함됩니다.
위 메서드를 해석하자면 "," 를 기준으로 문자열을 2 덩이로 (2-1 = 1회) 나눈다는 의미입니다.
Character.toUpperCase(char ch) : 단일 문자를 대문자로 변환하는 메서드
Character.toLowerCase(char ch) : 단일 문자를 소문자로 변환하는 메서드
'문제 풀이 > 프로그래머스 알고리즘' 카테고리의 다른 글
가장 가까운 같은 글자 (1) | 2024.10.17 |
---|---|
문자열 내 마음대로 정렬하기 // Arrays.sort(), Comparator<T> (1) | 2024.10.14 |
최대공약수와 최소공배수 // 스트림 연습 (0) | 2024.10.08 |
행렬의 덧셈 // 이중for문, 스트림 (0) | 2024.10.07 |
문자열 다루기 기본 // Character.isDigit() (0) | 2024.10.06 |