문제 설명 :
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항 :
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예:
| s | return |
| "try hello world" | "TrY HeLlO WoRlD" |
입출력 예 설명 :
try hello world는 세 단어 try, hello, world로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 TrY, HeLlO, WoRlD입니다. 따라서 TrY HeLlO WoRlD 를 리턴합니다.
class Solution {
public String solution(String s) {
String answer = "";
String[] array = s.split("");
int count = 0;
for(int i=0; i < s.length(); i++){
if(count % 2 == 0){
answer += array[i].toUpperCase();
} else {
answer += array[i].toLowerCase();
}
count++;
if(array[i].equals(" ")){
count = 0;
}
}
return answer;
}
}
알고리즘 풀이 :
1. String 타입으로 반환할 answer을 ""으로 초기화
2. 문자열 s를 split을 사용하여 나누어서 String 배열 array에 저장
3. 공백의 위치를 알기 위해 count를 int 타입으로 선언하고 0으로 초기화
4. s의 길이만큼 for문을 반복
1) count가 0이면
- answer에 array[i].toUpperCase()를 사용해 문자 하나를 대문자로 바꾸어 answer에 넣어줌
2) count가 0이 아니라면
- answer에 array[i].toLowerCase()를 사용해 문자 하나를 소문자로 바꾸어 answer에 넣어줌
5. count를 1씩 증가시켜 짝수번째 문자와 홀수번째 문자를 판별
6. 만일 array[i]가 빈칸일 경우 equals를 사용하여 count를 0으로 초기화 하여 공백 기준 인덱스로 만들어줌
7. 위 과정을 끝낸 answer을 return을 사용해 반환
toUpperCase(), toLowerCase() ?
- Java 내장 대소문자 변환 함수
- 별도의 import 없이 사용 가능
- toUpperCase()은 대문자로, toLowerCase()은 소문자로 변환
- str.toUpperCase()이 기본형 (str은 문자열)
- 위에서 본 바와 같이 글자 하나도 변환이 가능
'프로그래머스 > level1' 카테고리의 다른 글
| [Java][프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2020.10.27 |
|---|---|
| [Java][프로그래머스] 시저암호 (0) | 2020.10.22 |
| [Java][프로그래머스] 문자열 다루기 기본 (0) | 2020.10.13 |
| [Java][프로그래머스] 제일 작은 수 제거하기 (0) | 2020.10.12 |
| [Java][프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2020.10.12 |