logo

𝝅번째 알파카의 개발 낙서장

screen

[프로그래머스 / JAVA] Level 1 이상한 문자 만들기 (12930)

posts

알고리즘

시리즈 톺아보기

프로그래머스

프로그래머스
count

이상한 문자 만들기 🔗

랭크 사용 언어
Level 1 JAVA

🔗 이상한 문자 만들기

문제 설명 🔗

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한 사항 🔗

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예 🔗

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

입출력 예 설명 🔗

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.

풀이 🔗

문자를 단어별로 구분하여 홀수 문자는 소문자, 짝수 문자는 대문자로 치환하여 반환한다.

전체 문자열이 아니라, 문자열의 단어별로 반환하기 때문에, 공백으로 문자열을 구분하여 대소문자 치환을 수행하면 된다.


s를 한 글자씩 분리하여 반복문을 돌리고, 문자 인덱스를 비교하여 대소문자를 치환한다. 공백을 만날 경우 인덱스를 초기화한다.

코드 🔗

JAVA

0/**
1 * 이상한 문자 만들기 클래스
2 *
3 * @author RWB
4 * @since 2021.12.13 Mon 18:03:00
5 */
6class Solution
7{
8 /**
9 * 해답 반환 메서드
10 *
11 * @param s: [String] 문자열
12 *
13 * @return [String] 해답
14 */
15 public String solution(String s)
16 {
17 String[] answer = s.split("");
18
19 int index = 0;
20
21 for (int i = 0; i < answer.length; i++)
22 {
23 // 공백일 경우
24 if (answer[i].equals(" "))
25 {
26 index = 0;
27 answer[i] = " ";
28 }
29
30 // 문자열일 경우
31 else
32 {
33 // 짝수 인덱스일 경우
34 if (index % 2 == 0)
35 {
36 answer[i] = answer[i].toUpperCase();
37 }
38
39 // 홀수 인덱스일 경우
40 else
41 {
42 answer[i] = answer[i].toLowerCase();
43 }
44
45 index++;
46 }
47 }
48
49 return String.join("", answer);
50 }
51}