https://programmers.co.kr/learn/courses/30/lessons/12930
코딩테스트 연습 - 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을
programmers.co.kr
기본틀
class Solution {
public String solution(String s) {
String answer = "";
return answer;
}
}
첫번째 시도
class Solution {
public String solution(String s) {
String[] arr = s.split("");
//문자열 시작
if(!arr[0].trim().isEmpty()){
for(int i = 0; i < arr.length; i++){
if(arr[i].trim().isEmpty()) break;
if(i%2 == 0){
arr[i] = arr[i].toUpperCase();
} else{
arr[i] = arr[i].toLowerCase();
}
}
}
for(int i = 0; i < arr.length; i++){
if(arr[i].trim().isEmpty() && !arr[i+1].trim().isEmpty()){
int j = 0;
while(true){
if(j%2 == 0){
arr[i+1+j] = arr[i+1+j].toUpperCase(); //대문자로
} else{
arr[i+1+j] = arr[i+1+j].toLowerCase();//소문자로
}
if(i+1+j == arr.length-1) break;
j++;
if(arr[i+1+j].trim().isEmpty()) break;
}
}
}
String answer = "";
for(int i = 0; i < arr.length; i++){
answer += arr[i];
}
return answer;
}
}
테스트케이스 4, 5, 8, 9, 11 실패 (˵ˊᯅˋ˵)
일단 문제가 너무 어려웠고, 겨우겨우 코드를 짰는데 너무 길고 복잡하게 짠 것 같아서 마음에 안들었고, 결과적으로 성공하지도 못했음
이 문제는 조금 쉬었다가 나중에 다시 보고 해결해야겠다!
두번째 시도! (2022.07.11)
import java.util.*;
class Solution {
public String solution(String s) {
String[] arr = s.split("");
String[] arr1 = s.split(" ");
int cnt = 0;
for(int i = 0; i < arr1.length; i++){
if(!arr1[i].isBlank()){
cnt++;
}
}
String[] arr2 = new String[cnt];
int j = 0;
for(int i = 0; i < arr1.length; i++){
if(!arr1[i].isBlank()){
arr2[j] = arr1[i];
j++;
}
}
for(int i = 0; i < arr2.length; i++){
String str = "";
for(int k = 0; k < arr2[i].length(); k++){
if(k%2 == 0){
//짝수인덱스 - 대문자
str += arr2[i].substring(k, k+1).toUpperCase();
}else{
//홀수인덱스 - 소문자
str += arr2[i].substring(k, k+1).toLowerCase();
}
}
arr2[i] = str;
}
String answer = "";
int h = 0;
if(arr[0].isBlank()){
answer += " ";
}else{
answer += arr2[h];
h++;
}
for(int i = 1; i < arr.length; i++){
if(arr[i].isBlank()){
answer += " ";
}else if(arr[i-1].isBlank() && !arr[i].isBlank()){
answer += arr2[h];
h++;
}
}
return answer;
}
}
흑흑 드디어 풀었어!! 성공~!! (๑>ᴗ<๑)
'프로그래머스 > Lv.1' 카테고리의 다른 글
Lv.1 문자열을 정수로 바꾸기 (0) | 2022.05.30 |
---|---|
Lv.1 시저 암호 (0) | 2022.05.29 |
Lv.1 약수의 합 (0) | 2022.05.27 |
Lv.1 자릿수 더하기 (0) | 2022.05.26 |
Lv.1 자연수 뒤집어 배열로 만들기 (0) | 2022.05.26 |