728x90
반응형
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
class Solution {
public String solution(String s) {
String answer = "";
int idx = 0;
String[] arr = s.split("");
for(String str : arr){
idx = str.contains(" ") ? 0 : idx+1;
answer += idx%2==0 ? str.toLowerCase() : str.toUpperCase();
}
return answer;
}
}
.split("")을 사용해 문자열을 배열로 쪼개 넣어준다.
- 0번 째 인덱스를 가진 첫번째 숫자를 짝수번째 알파벳으로 처리
- 전체 문자열이 아닌 공백을 기준으로 짝/홀을 판별
for(String str : arr){
idx = str.contains(" ") ? 0 : idx+1;
answer += idx%2==0 ? str.toLowerCase() : str.toUpperCase();
}
위 조건을 만족시키기 위한 for문을 입출력 예시로 설명하자면
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
- 첫번째 문자 t는 0번째 인덱스이므로 짝수번째 알파벳으로 취급되어 대문자가 되어야 한다.
- idx = str.contains(" ") ? 0 : idx + 1; 을 통과 후 공백이 아니기 때문에 idx가 1이 됨.
- answer += idx%2==0 ? str.toLowerCase() : str.toUpperCase(); 을 통해 대문자로 변환.
- 그 다음 문자인 r은 idx가 2기 때문에 소문자로 변환.
- 같은 방법으로 y은 idx가 3이기 때문에 대문자로 변환.
- 공백이 나오면 0으로 idx를 초기화해주고 위를 반복.
※ idx 변수의 수 때문에 짝홀이 헷갈릴 수 있지만 문자열 상으로 보면 짝홀이 맞음.
ex ) 문자열 t는 실제 인덱스가 0으로 짝수 알파벳으로 취급하지만 idx는 1이다.
https://school.programmers.co.kr/learn/courses/30/lessons/12930
728x90
반응형
'코테 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 크기가 작은 부분 문자열 Java + 원시 타입과 참조 타입 이해하기 (0) | 2024.09.27 |
---|---|
프로그래머스 - 삼총사 Java (1) | 2024.09.26 |
프로그래머스 - 3진법 뒤집기 Java (0) | 2024.09.25 |
프로그래머스 - 최대공약수와 최소공배수 Java (+ 유클리드 호제법) (0) | 2024.09.12 |
프로그래머스 - 직사각형 별찍기 Java (0) | 2024.09.11 |