[2020-11-16] 이상한 문자 만들기
2020. 11. 16. 14:57ㆍ코딩테스트
푼 시간 : 40분
언어 : 자바
programmers.co.kr/learn/courses/30/lessons/12930#
코딩테스트 연습 - 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을
programmers.co.kr
문제를 풀기 위해 고민했던것은 공백을 제거하는 것 이었다.
split으로 문장에 띄어쓰기마다 분리를 해야 했었기때문에 기준이 필요했다.
split메소드는 split(String regex, int limit) 인자를 가지고 있는데
limit을 통해 반환될 배열의 크기에 영향을 준다.
나머지는 심플하게 char형에서 대문자 소문자로 바꾸는 방식을 썼다.
마지막에 공백을 하나 더 채우게 되는데, i가 배열의 마지막이 될경우 break를 걸게 해놨다.
class Solution {
public String solution(String s) {
String answer = "";
String[] array=s.split(" ", -1);
// 0보다 작은 -1로 지정
for(int i=0; i<array.length; i++){
int count=array[i].length();
// 단어마다 카운트
for(int j=0; j<count; j++){
int tmp=(int)array[i].charAt(j);
// 한 글자마다 int로 받아줘 계산한다.
if((j==0||j%2==0)&&(97<=tmp && tmp<=122))
// 짝수이면서 소문자일 경우
answer+=(char)(tmp-32);
else if(j%2!=0&&(65<=tmp && tmp<=90))
// 홀수이면서 대문자일 경우
answer+=(char)(tmp+32);
else
answer+=(char)tmp;
}
if(i==array.length-1)
// 마지막 공백처리
break;
answer+=" ";
}
return answer;
}
}
'코딩테스트' 카테고리의 다른 글
[2020-11-18] 정수 제곱근 판별도움말 (0) | 2020.11.18 |
---|---|
[2020-11-17] 정수 내림차순으로 배치하기 (0) | 2020.11.17 |
[2020-11-13] 약수의 합 (0) | 2020.11.13 |
[2020-11-12] 문자열을 정수로 바꾸기 (0) | 2020.11.12 |
[2020-11-11] 수박수박수박수박수박수? (0) | 2020.11.11 |