일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 갑상선암용인세브란스
- 백준알고리즘
- 맛집
- 방사성 동위원소 치료
- 갑상선암
- Android Compose
- java
- Compose
- 수술
- 입원
- 프로그래머스
- 객체
- android auto
- 임파선전이
- MYSQL
- 방사성동위원소치료
- 전이
- 림프절전이
- firebase
- Android
- 경력 개발자
- 카페
- Jetpack Compose
- 폐CT
- leetcode
- 동위원소치료
- 알고리즘
- 저요오드식
- 정렬 알고리즘
- 안드로이드
Archives
- Today
- Total
새우버거의 개발 블로그
[JAVA] 프로그래머스 Lv.1 : 이상한 문자 만들기 본문
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
예제:
Input:
s : "try hello world"
Output:
"TrY HeLlO WoRlD"
제한 조건:
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
Solution #1
class Solution {
public String solution(String s) {
String[] array = s.split(" ", -1);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < array.length; i++) {
builder.append(convertWord(array[i]));
if (i < array.length - 1) builder.append(" ");
}
return builder.toString();
}
private String convertWord(String str) {
String[] array = str.split("", -1);
System.out.println(array.length);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < array.length; i++) {
builder.append((i % 2 == 0) ? array[i].toUpperCase() : array[i].toLowerCase());
}
return builder.toString();
}
}
Result #1
💡 String s를 배열로 만들고, for 반복문을 사용하여 문제를 정직하게 풀었다.
Solution #2
class Solution {
public String solution(String s) {
StringBuilder answer = new StringBuilder();
String[] array = s.split("");
int count = -1;
for (String str : array) {
count = str.equals(" ") ? -1 : count + 1;
answer.append((count % 2 == 0) ? str.toUpperCase() : str.toLowerCase());
}
return answer.toString();
}
}
Result #2
💡 " " 공백 문자가 나올 때, count 값을 초기화 시켜주고, 그 외 문자엔 count 값을 증가시킨다. 그럼 따로 공백문자를 기준으로 String 배열을 만들지 않아도 각 단어의 index 값을 알 수 있다.
More Algorithm!
👇👇
github.com/ggujangi/ggu.programmers
ggujangi/ggu.programmers
프로그래머스 알고리즘, JAVA. Contribute to ggujangi/ggu.programmers development by creating an account on GitHub.
github.com
출처 : 프로그래머스
'프로그래머스 - JAVA > Level 1' 카테고리의 다른 글
[JAVA] 프로그래머스 Lv.1 : 시저 암호 (0) | 2021.04.03 |
---|---|
[JAVA] 프로그래머스 Lv.1 : 약수의 합 (0) | 2021.04.03 |
[JAVA] 프로그래머스 Lv.1 : 자릿수 더하기 (0) | 2021.04.03 |
[JAVA] 프로그래머스 Lv.1 : 자연수 뒤집어 배열로 만들기 (0) | 2021.04.02 |
[JAVA] 프로그래머스 Lv.1 : 정수 내림차순으로 배치하기 (0) | 2021.04.02 |