반응형
알고리즘
JAVA 프로그래머스 이상한 문자 만들기
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12930
2. 풀이
- 역시 어렵지 않은 문제였는데 coutn를 더해서 다음 순서로 넘기는게 개인적으로 머릿속에서 확떠오르지 않는다..
- 이 중요한 점은 문자열의 인덱스 순서가 아니라 단어의 공백을 기준으로 짝/홀을 구분하여 대문자, 소문자로 바꾼다
- for문 안쪽에서 sout를 찍어보면 주석과 같이 '1 2 3 0 1 2 3 4 5 0 1 2 3 4 5' 숫자가 순서대로 찍히고 이 순서대로 대소문자 변환
class Solution {
public String solution(String s) {
String answer = "";
String str[] = s.split("");
String space = " ";
int cnt = 0;
for(int i = 0; i < str.length; i++){
if(str[i].equals(space)){
cnt = 0; // 공백일 때 여기서 0부터 다시 counting
}else{
if(cnt % 2 == 0){
cnt++;
str[i] = str[i].toUpperCase();
}else{
cnt++;
str[i] = str[i].toLowerCase();
}
}
System.out.println(cnt); // 1 2 3 0 1 2 3 4 5 0 1 2 3 4 5
answer += str[i];
}
System.out.println(answer);
return answer;
}
}
[다른사람의 풀이]
3항 연산자를 이용해서 짧게 푼 방법
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' 카테고리의 다른 글
[python] 백준 더하기 사이클(1110) (0) | 2021.12.25 |
---|---|
[JAVA] 프로그래머스 제일 작은 수 제거하기 (0) | 2021.11.12 |
[JAVA] 프로그래머스 완주하지 못한 선수 (0) | 2021.11.12 |
[JAVA] 프로그래머스 로또의 최고 순위와 최저 순위 (0) | 2021.11.12 |
[JAVA] 프로그래머스 문자열 내 p와 y의 개수 (0) | 2021.11.11 |