다희의 코딩 성장일기
[프로그래머스] level1. 이상한 문자 만들기 (자바 JAVA) 본문
[ 문제 ] [프로그래머스] level1. 이상한 문자 만들기 (자바 JAVA)
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12930
# 접근 방법 및 풀이
- 모든 문자를 소문자로 바꿔주고 split을 사용해 String arr[] 배열로 바꿔준다.
- String 배열에는 하나의 String 단어가 들어가 있기 때문에 모든 단어를 살펴보면서, 해당 단어의 짝수 idx는 대문자, 홀수 idx는 소문자로 StringBuilder에 더해준다.
- 한 단어가 끝나면, StringBuilder에 " " 공백을 더해주고, 맨 마지막에 공백이 추가로 들어있기때문에 맨 마지막 공백은 제거하고 반환한다.
- 나머지는 코드참조
# 주의할 점
- 문자가 소문자로만 들어오지 않는다. 대소문자 섞어서 들어올 수도 있음.
- split 쓸 때 주의해야한다. 각 단어가 공백을 기준으로 들어오지만, 그 단어의 길이에 대한 명시는 없다. 단어의 길이가 0인게 공백을 기준으로 들어올 수도 있다.
- 따라서 "abc " 이런형태가 들어올 수 있다. 그냥 split를 쓰면 String s [] = {abc}; 이렇게 들어가겠지만 공백을 기준으로 단어를 잘라야하므로 String s [] = {abc, , , , }; 이런형태로 들어오게 해야한다.
- s.split(" ", -1); split메소드의 limit을 -1 음수로 주면 모든 구분값을 나눠 배열에 반환한다.
JAVA 코드
class Solution {
public String solution(String s) {
s = s.toLowerCase();
String sarr[] = s.split(" ", -1);
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < sarr.length; i++){
for(int j = 0 ; j < sarr[i].length(); j++){
char c = sarr[i].charAt(j);
if(j%2 == 0){
c -=32;
}
sb.append(c);
}
sb.append(" ");
}
String answer = sb.toString();
return answer.substring(0, answer.length()-1);
}
}
REVIEW
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] level1. 콜라츠 추측 (자바 JAVA) (0) | 2021.08.20 |
---|---|
[프로그래머스] level1. 두 정수 사이의 합 (자바 JAVA) (0) | 2021.08.20 |
[프로그래머스] level1. 서울에서 김서방 찾기 (자바 JAVA) (0) | 2021.08.20 |
[프로그래머스] level1. 약수의 합 (자바 JAVA) (0) | 2021.08.20 |
[프로그래머스] level1. 최대공약수와 최소공배수 (자바 JAVA) (0) | 2021.08.20 |
Comments