on
[JAVA] 프로그래머스 이상한 문자 만들기
[JAVA] 프로그래머스 이상한 문자 만들기
728x90
알고리즘
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; } }
728x90
from http://yuricoding.tistory.com/68 by ccl(A) rewrite - 2021-11-12 19:28:06