일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에러
- Singleton
- 이펙티브자바
- study
- javascript
- 람다
- 오라클
- 프로그래머스
- math
- 인코딩
- 회고
- Head First Design Pattern
- 카카오톡1차
- JPA
- 독서
- 자바
- Design Pattern
- 후기
- 알고리즘
- 공부
- Java
- 우아한테크코스
- Eclipse
- 매핑
- 독서리뷰
- 인강리뷰
- spring
- 인프런
- 디자인패턴
- Oracle
- Today
- Total
Lee's Grow up
[자바/알고리즘] 프로그래머스 이상한 문자 만들기 본문
문제
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어( 공백을 기준 ) 별로 짝/홀수 인덱스를 판단해야 합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니. 따라서 "TrY HeLlO WoRlD"를 리턴합니다.
나의 풀이
class Solution {
public String solution(String temp) {
int index = 0;
char[] charArr = temp.toCharArray();
for (int i = 0; i < charArr.length; i++) {
char tempChar = charArr[i];
if(tempChar == 32) {
index= 0;
continue;
}
if (index++ % 2 == 0) {
if (tempChar >= 97 && tempChar <= 122) {
charArr[i] -= 32;
}
} else {
if (tempChar >= 65 && tempChar <= 90) {
charArr[i] += 32;
}
}
}
return String.valueOf(charArr);
}
}
개인적으로 주어지는 단어 temp에 공백이 연속일 수 있다는 조건에 없어서
당연히 문자와 문자 사이의 구분은 공백 하나로 주어지는줄 알고 split( ) 메소드로 접근을해서 풀이를 했었다.
그런데 오류가 발생해서 보니... test case에는 공백이 연속으로 주어지는 경우가 있어서 문제가 발생...
문제에 따로 표시를 해주면 좋겠다만 아무튼 전체 문자를 char[ ] 로 변환 시켜주고 아스키 코드로 접근했다.
여기서 index 변수는 문자의 홀수,짝수를 구분하기 위해 주어진 변수이고,
if(tempChar == 32) 즉 해당 문자가 ' '(공백) 일 경우 0으로 초기화해준다. 그러면서 공백이 아닐 경우
tempChar >= 97 && tempChar <= 122 즉 소문자일 경우 -32를 해줘서 대문자로,
tempChar >= 65 && tempChar <= 90 즉 대문자일 경우 +32를 해줘서 소문자로
변환해주고 마지막 return 타입이 String이기 때문에 값을 변환해줘서 리턴을 합니다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[자바/알고리즘] 프로그래머스 소수찾기 (0) | 2019.10.31 |
---|---|
[자바/알고리즘] 프로그래머스 [1차] 비밀지도 (0) | 2019.10.31 |
[자바/알고리즘] 프로그래머스 [1차] 다트 게임 (0) | 2019.10.30 |
[자바/알고리즘] 프로그래머스 예산 (0) | 2019.10.30 |
[자바/알고리즘] 프로그래머스 실패율 (0) | 2019.10.30 |