코딩테스트 - JAVA/프로그래머스 Programmers
21. [JAVA] 프로그래머스 코딩테스트 연습 Level.1 - 이상한 문자 만들기 / 4,5,8,9,11번 실패 해결
Cucum
2022. 5. 2. 13:14
https://programmers.co.kr/learn/challenges
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
프로그래머스 코딩테스트 연습 Level.1 - 이상한 문자 만들기
풀이
class Solution {
public String solution(String s) {
String answer = "";
// 입력된 문자를 " " 띄어쓰기 기준으로 자르기
String[] world = s.split(" ", -1);
for(int i = 0; i < world.length; i++) {
for (int j = 0; j < world[i].length(); j++) {
if (j % 2 == 0) {
answer += world[i].substring(j, j + 1).toUpperCase();
} else {
answer += world[i].substring(j, j + 1).toLowerCase();
}
}
if (i != world.length - 1) {
answer += " ";
}
}
return answer;
}
}
풀이 과정
① 공백을 기준으로 단어를 자르기 (split)
② 자른 각 단어의 길이로 i가 짝수이면 toUpperCase() / i가 홀수이면 toLowerCase()
(풀이 실패 과정)
class Solution {
public String solution(String s) {
String answer = "";
// 입력된 문자를 " " 띄어쓰기 기준으로 자르기
String[] world = s.split(" "); // <- 여기가 문제
for(int i = 0; i < world.length; i++) {
for (int j = 0; j < world[i].length(); j++) {
if (j % 2 == 0) {
answer += world[i].substring(j, j + 1).toUpperCase();
} else {
answer += world[i].substring(j, j + 1).toLowerCase();
}
}
if (i != world.length - 1) {
answer += " ";
}
}
return answer;
}
}
이유 = 만약 문자열이 "abc " 인 것처럼 맨 뒤에 공백이 왔을 경우, -1이 없으면 "AbC"로 공백을 제외하고 출력하게 됨