https://school.programmers.co.kr/learn/courses/30/lessons/12930#
풀이 접근법 :
1) input 값이 String으로 들어와 split() 함수를 사용하여 단어의 index가 홀수,짝수에 따라 대문자, 소문자로 나누려고 했으나 단어 사이에 공백이 여러개 있을 경우 문제가 풀리지 않아 Char Array 형태로 바꿈
2) Char Array로 바꾸어 foreach 문으로 char를 하나씩 가져와 공백이면 cnt를 0으로 초기화 하고 아닐 경우에 홀수, 짝수에 따라 대문자 소문자로 바꾸어주어, StringBuilder에 하나씩 붙여서 마지막에 출력함.
class Solution {
public String solution(String s) {
String answer = "";
StringBuilder sb = new StringBuilder();
boolean isWord = false;
int cnt = 0;
char[] sChar = s.toCharArray();
for(char c : sChar){
if(c == ' '){
cnt = 0;
}else{
if(cnt % 2 == 0){
c = String.valueOf(c).toUpperCase().toCharArray()[0];
}else{
c = String.valueOf(c).toLowerCase().toCharArray()[0];
}
cnt++;
}
sb.append(c);
}
answer = sb.toString();
return answer;
}
}
아래 코드는 답안에 좋아요가 많은 코드로 문장 -> word -> char 로 나누어 주면서 " " 이면 cnt = 0 으로 초기화 아니면 +1 해주면서 하나씩 붙이고 있다. 내 코드에서는 char[] -> String[] 으로 바꾸고, 홀짝 if 문에서 수정을 좀 하면 될듯..
class Solution {
public String solution(String s) {
String answer = "";
int cnt = 0;
String[] array = s.split("");
for(String ss : array) {
cnt = ss.contains(" ") ? 0 : cnt + 1;
answer += cnt%2 == 0 ? ss.toLowerCase() : ss.toUpperCase();
}
return answer;
}
}
'Java' 카테고리의 다른 글
[알고리즘] 최소 신장 트리(Minimum Spanning Tree) (0) | 2023.03.25 |
---|---|
[프로그래머스] 03/24 문제 풀기 (0) | 2023.03.24 |
최단 경로 알고리즘 (0) | 2023.03.23 |
다이나믹 프로그래밍(DP), 백트래킹(Backtracking) (0) | 2023.03.21 |
[Java] 03/20 알고리즘 문제 (0) | 2023.03.21 |