1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12951?language=java
코딩테스트 연습 - JadenCase 문자열 만들기
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건
programmers.co.kr
2. 나의 풀이
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
s = s.toLowerCase();
//System.out.println("s(모두 소문자) : " + s);
ArrayList<String> arr = new ArrayList<>();
String str = "";
for(int i = 0; i < s.length(); i = i + 1) {
if(s.charAt(i) == ' ') {
if(s.charAt(i - 1) == ' ') {
arr.add(" ");
}else {
arr.add(str);
arr.add(" ");
str = "";
}
}else {
str += s.substring(i, i + 1);
}
if(i == s.length() - 1 && s.charAt(i) != ' ') {
arr.add(str);
}
//System.out.println("s.charAt(" + i + ") : " + s.charAt(i) + ", arr : " + arr);
}
//System.out.println("arr : " + arr);
for(int i = 0; i < arr.size(); i = i + 1) {
//System.out.println((int)arr.get(i).charAt(0));
if(97 <= (int)arr.get(i).charAt(0) && 122 >= (int)arr.get(i).charAt(0)) {
answer += arr.get(i).substring(0, 1).toUpperCase() + arr.get(i).substring(1, arr.get(i).length());
}else {
answer += arr.get(i);
}
}
return answer;
}
}
3. 다른 사람 풀이
class Solution {
public String solution(String s) {
String answer = "";
String[] sp = s.toLowerCase().split("");
boolean flag = true;
for(String ss : sp) {
answer += flag ? ss.toUpperCase() : ss;
flag = ss.equals(" ") ? true : false;
}
return answer;
}
}
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
(Java)프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [1차] 추석 트래픽 (0) | 2020.12.14 |
---|---|
(Java)프로그래머스 코딩테스트 연습 - 2017 팁스타운 - 짝지어 제거하기 (0) | 2020.12.13 |
(Java)프로그래머스 코딩테스트 연습 - 2019 카카오 개발자 겨울 인턴십 - 튜플 (0) | 2020.12.12 |
(Java)프로그래머스 코딩테스트 연습 - 연습문제 - 가장 큰 정사각형 찾기 (0) | 2020.12.11 |
(Java)프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [3차] n진수 게임 (0) | 2020.12.09 |