728x90
반응형
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
s | return |
try hello world | TrY HeLlO WoRlD |
입출력 예 설명
try hello world는 세 단어 try, hello, world로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 TrY, HeLlO, WoRlD입니다. 따라서 TrY HeLlO WoRlD 를 리턴합니다.
package strangeString;
public class StrangeString {
public static void main(String[] args) {
Solution s = new Solution();
System.out.println(s.solution("try hello world"));
}
}
class Solution {
public String solution(String s) {
String answer = "";
s = s.toLowerCase();
String[] strArr = s.split(" ");
for (int i = 0; i < strArr.length; i++) {
String temp = strArr[i];
for (int j = 0; j < temp.length(); j++) {
if(j % 2 == 0) answer += temp.toUpperCase().charAt(j);
else answer += temp.toLowerCase().charAt(j);
}
if(i != strArr.length - 1) answer += " ";
}
if(s.length() > answer.length()) answer += s.substring(answer.length());
return answer;
}
}
※ 어려웠던 점
if( s.length() > answer.length() ) answer += s.substring(answer.length());
위의 문장처럼, 원래 문자열인 s에서 answer의 길이보다 더 긴 공백이 있는 경우를 놓쳤었다.
그래서 테스트케이스 9번이 계속 실패가 났었다.
if( s.length() > answer.length() ) answer += s.substring(answer.length()); << 를 사용함으로써 9번 케이스 실패를 면할 수 있었다.
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/java] 최대공약수와 최소공배수 구하기 (0) | 2020.12.14 |
---|---|
[프로그래머스/java] 2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도 (0) | 2020.12.13 |
[프로그래머스/java] 2019 KAKAO BLIND RECRUITMENT실패율 (0) | 2020.12.12 |
[프로그래머스/java] 완주하지 못한 선수 (0) | 2020.12.11 |
[프로그래머스/java] 문자열 내 마음대로 정렬하기 (0) | 2020.12.11 |
댓글