본문 바로가기
개발로그/알고리즘

프로그래머스 Lv.1 이상한 문자 만들기

by 쩜징 2023. 8. 8.

프로그래머스 Lv.1 이상한 문자 만들기


문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있다.

각 단어는 하나 이상의 공백문자로 구분되어 있다.

각 단어의 짝수번째 알파벳은 대문자로,

홀수번째 알파벳은 소문자로 바꾼 문자열을 return하라.

 

1. 문자열 전체의 짝/홀수 인덱스가 아니라,

단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 한다.

2. 첫 번째 글자는 0번째 인덱스로 보아

짝수번째 알파벳으로 처리해야 한다.

 

s result
"try hello world" "TrY HeLlO WoRlD"

** 풀이 방법

 

s를 문자 하나하나로 나눠 s1이라는 배열에 저장한다.

String[] s1 = s.split("");

 

for문을 돌려 s1배열에 접근해서

원소가 공백이면 cnt를 0으로

아니면 cnt가 1씩 증가하게 설정한다.

공백이 0이므로 인덱스로 생각하지 않고

문자의 순서로 생각해서

cnt가 짝수이면 소문자로 

홀수이면  대문자로 변경해서 answer에 더한다.

for(String i : s1) {
    cnt = (i.equals(" ") ? 0 : cnt+1);
    answer += (cnt%2==0 ? i.toLowerCase() : i.toUpperCase()); 
}

 

<> 전체 코드 </>

class Solution {
  public String solution(String s) {

        String answer = "";
        int cnt = 0;
        String[] s1 = s.split("");

        for(String i : s1) {
            cnt = (i.equals(" ") ? 0 : cnt+1);
            answer += (cnt%2==0 ? i.toLowerCase() : i.toUpperCase()); 
        }
        return answer;
  }
}

반응형

'개발로그 > 알고리즘' 카테고리의 다른 글

[DFS] 백준 DFS와 BFS 1260번  (0) 2023.08.09
탐색  (0) 2023.08.09
프로그래머스 Lv.1 명예의 전당 (1)  (0) 2023.08.08
[그리디] 백준 잃어버린 괄호 1541번  (0) 2023.08.05
[그리디] 백준 ATM 11399번  (0) 2023.08.04

댓글