728x90
[level 1] 이상한 문자 만들기 - 12930
성능 요약
메모리: 81.9 MB, 시간: 0.09 ms
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
| s | return |
|---|---|
| "try hello world" | "TrY HeLlO WoRlD" |
입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
풀이과정
- toCharArray(): String으로 받은 문자열을 char 문자로 쪼갠 뒤 char[]배열에 순서대로 값을 넣어 반환
- Character.toUpperCase(변환을 원하는 단어): Char 대문자로 변환
Char c = "a"
c = Character.toUpperCase(c); //"A"
- Character.toLowerCase(변환을 원하는 단어):Char 소문자로 변환
Char c = "A"
c = Character.toLowerCase(c); //"a"
testcase가 돌아가지 않는다면 고려해야할 부분
- 단어 사이 공백이 여러개
- 문자의 시작과 끝에 공백
- 단어에 대문자가 섞여있는 경우 위 세가지 고려해서 테스트 해보시면 될거 같습니다.
- " tRy hello WORLD " 로 넣어서 테스트 해보시면 될거같습니다.
자바 정답 코드
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
int count = 0;
for (char c : s.toCharArray()) {
if (c == ' ') {
sb.append(c);
count = 0;
} else {
if (count % 2 == 0) {
sb.append(Character.toUpperCase(c));
} else {
sb.append(Character.toLowerCase(c));
}
count++;
}
}
return sb.toString();
}
}
728x90
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스 level 3][JAVA] 12907번: 거스름돈 (0) | 2025.11.14 |
|---|---|
| [프로그래머스 Level2]SELECT:부모의 형질을 모두 가지는 대장균 찾기-SQL (0) | 2025.04.25 |
| [프로그래머스 Level2]SELECT:조건에 맞는 개발자 찾기-SQL (0) | 2025.04.25 |
| [프로그래머스 Level3]GROUP BY:대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기-SQL (0) | 2025.03.21 |
| [프로그래머스 Level3]DP:N으로 표현-JAVA (자바) (0) | 2025.03.17 |