티스토리 뷰

반응형

Using Language : Java
Using Tool : IntelliJ


  • 프로그래머스 문제 소개

< 이상한 문자 만들기 >

문제 설명

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

제한 조건

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

예시

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

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

의사코드

  1. String 으로 입력받는 값을 split 함수를 이용하서 한글자씩 배열에 저장.
  2. for 문을 이용해서 저장한 배열 길이만큼 if문 타기
  3. if 문에서 배열에 공백이 들어온 경우 cnt를 0으로 주기
  4. 배열에 공백이 아닌경우 cnt를 하나씩 올려주면서 cnt를 2로 나눈 나머지가 0인 경우 대문자로 , 0이 아닌경우 소문자로 저장

<Solution12.java>

package level1;

public class Solution12 {
	
	public String solution(String s) {
		String[] data = s.split("");
		String answer = "";
		int len = data.length;
		int cnt = 0;

		for (int i = 0; i < len; i++) {
			if (data[i].equals(" ")) {
				cnt = 0;
			} else {
				if (cnt % 2 == 0) {
					data[i] = data[i].toUpperCase();
					cnt++;
				} else {
					data[i] = data[i].toLowerCase();
					cnt++;
				}
			}
			answer += data[i];
		}
		return answer;
	}
}

<Solution12Test.java>

package level1;

import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.Test;

public class Solution12Test {
	
	@Test
	public void 결과() {
		Solution12 s = new Solution12();
		
		assertEquals("TrY HeLlO WoRlD", s.solution("try hello world"));
	}
}

 

github에서 문제 확인하기

 

프로그래머스_이상한_숫자_만들기 · udud0510/CodeKata@368cf86

Permalink Browse files 프로그래머스_이상한_숫자_만들기 Loading branch information... Showing 2 changed files with 58 additions and 0 deletions. +42 −0 src/level1/Solution12.java +16 −0 src/level1/Solution12Test.java @@ -0,0 +1,42 @@ package level1; public class Solution

github.com

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함