728x90
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다
입출력 예
| s | return |
| "try hello world" | "TrY HeLIO WoRID" |
입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLIO", "WoRID"입니다. 따라서 "TrY HeLIO WoRID"를 리턴합니다.
코드
public class Solution27_2 {
public static String solution(String s) {
String answer = "";
String s1[] = s.split(""); // 공백 포함 한 글자씩 다 들어감
int idx = 0;
for (int i = 0; i < s1.length; i++) {
if (s1[i].equals(" ")) {
idx = 0;
continue; // 띄어쓰기는 건너뛰어야 함.
}
if (idx % 2 == 0 || idx == 0) {
s1[i] = s1[i].toUpperCase();
} else {
s1[i] = s1[i].toLowerCase();
}
idx++;
}
answer = String.join(" ", s1); // s1 배열 내용들을 "" 넣어서 붙이기 ex) String.join(" ", s1);이면 T r Y H e L l O W o R l D
return answer;
}
public static void main(String[] args) {
String s = "try hello world";
System.out.print(solution(s));
}
}
String 클래스에서 사용하는 .toUpperCase() 나 .toLowerCase()를 사용하려 하였으나 이건 문자열 전체를 전부 대문자나 소문자로 바꾸기 때문에 사용이 어려워보였다. 하지만 이것을 String 배열에 넣는다면 char처럼 한 글자씩 쓸 수 있다는 것을 알게됐다.
import java.util.*;
import java.io.*;
class Solution {
public String solution(String s) {
char []answer = s.toCharArray();
ArrayList<String>result = new ArrayList<>();
int index=0;
for(int i=0;i<s.length();i++){
String alpha=answer[i]+"";
if(alpha.equals(" ")){
index=0;
result.add(" ");
continue;
}
if(index%2==0){
result.add(alpha.toUpperCase());
}
else{
result.add(alpha.toLowerCase());
}
index++;
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<result.size();i++){
sb.append(result.get(i));
}
//System.out.println(answer);
return sb.toString();
}
}
import java.util.*;
import java.io.*;
class Solution {
public String solution(String s) {
String []answer = s.split("");
String result="";
int index=0;
for(int i=0;i<s.length();i++){
if(answer[i].equals(" ")){
index=0;
continue;
}
if(index%2==0){
answer[i]=answer[i].toUpperCase();
}
else{
answer[i]=answer[i].toLowerCase();
}
index++;
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<answer.length;i++){
sb.append(answer[i]);
}
//System.out.println(answer);
return sb.toString();
}
}728x90
'Java 알고리즘 공부 (프로그래머스)' 카테고리의 다른 글
| [프로그래머스 Lv1] 콜라츠 추측 (Java) (0) | 2023.10.03 |
|---|---|
| [프로그래머스 Lv1] 정수 제곱근 판별 (Java) (1) | 2023.09.17 |
| [프로그래머스 Lv1] 문자열 내림차순으로 배치하기 (Java) (0) | 2023.09.17 |
| [프로그래머스 Lv1] 문자열 내 p와 y의 개수 (Java) (0) | 2023.09.16 |
| [프로그래머스 Lv1] 문자열 내 마음대로 정렬하기 (Java) (0) | 2023.09.16 |