이상한 문자 만들기 JAVA
문제설명 : 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12930
대소문자 변경하는 것 보다.. 공백 처리가 무지 어려웠다. ㅠㅠ
class Solution {
public String solution(String s) {
StringBuilder answer = new StringBuilder();
String[] words = s.split(" ", -1);
int wordIndex = 0;
for(String word : words){
if(!word.isEmpty()){ answer.append(convertWord(word)); }
if(wordIndex < words.length - 1){ answer.append(" "); }
wordIndex++;
}
return answer.toString();
}
private String convertWord(String word){
StringBuilder result = new StringBuilder();
for(int i=0; i<word.length(); i++){
char c = word.charAt(i);
result.append(i%2 == 0 ? Character.toUpperCase(c) : Character.toLowerCase(c));
}
return result.toString();
}
}
좋아요 수가 많은 다른 사람의 풀이 : 오... 엄청 간결하다 !!
class Solution {
public String solution(String s) {
String answer = "";
int cnt = 0;
String[] array = s.split("");
for(String ss : array) {
cnt = ss.contains(" ") ? 0 : cnt + 1;
answer += cnt%2 == 0 ? ss.toLowerCase() : ss.toUpperCase();
}
return answer;
}
}
레벨0을 다 풀고..자신감이 생겨서 레벨 1도 계속해서 풀어보는 중인데, 풀수록.. 느껴진다. 단순한것처럼 위장했지만 한번 꼬아진 문제들이다..!! 그래도.. 이번달안에는 레벨1 다 풀어보고싶었는데.. 이번달에 다 못하더라도 꾸준히 한다는 것이 중요하니께..!!! 😆
728x90
300x250