티스토리 뷰
반응형
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"
의사코드
- String 으로 입력받는 값을 split 함수를 이용하서 한글자씩 배열에 저장.
- for 문을 이용해서 저장한 배열 길이만큼 if문 타기
- if 문에서 배열에 공백이 들어온 경우 cnt를 0으로 주기
- 배열에 공백이 아닌경우 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"));
}
}
반응형
'프로그래머스' 카테고리의 다른 글
19. 프로그래머스_x만큼 간격이 있는 n개의 숫자 (0) | 2019.09.17 |
---|---|
18. 프로그래머스_시저 암호 (0) | 2019.09.16 |
16. 프로그래머스_구명보트 (0) | 2019.09.11 |
15. 프로그래머스_기능개발 (0) | 2019.03.27 |
14. 프로그래머스_주식가격 (0) | 2019.03.26 |
댓글