본문 바로가기
Algorithm/Programmers

[프로그래머스(programmers)] (Lv2) JadenCase 문자열 만들기

by 광진구뚝배기 2021. 6. 10.

알고리즘 문제 풀이 / 프로그래머스 (programmers)  - JadenCas 문자열 만들기

 

 

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/12951

 

 

 

문제 풀이

 

처음 모든 문자들을 소문자로 변환한다.

첫 글자이거나, " "(공백) 있는 다음 글자를 대문자로 변환한다.

 

 

처음 풀었을 땐, char배열에 넣어서 첫글자이거나 공백다음은 대문자로, 아닌것들은 소문자로 바꾸는 식으로 풀었었다. 이렇게 했더니 12점을 받았다. 그러고 나서 다른 사람들의 코드를 보는데 애초에 첫 줄에서 모든 문자열을 소문자로 변환한 후, 해당 조건시에만 대문자로 바꾸는 방법도 있어서 그렇게 다시 풀어보았다. 그리고 다시 푸는 김에 이번엔 char 배열에 넣는것이 아니라 .split("") 을 사용하여 String 배열에 넣어보았다. 내 생각엔 이게 조금 더 효율적인 것 같은데 두번째 푼 코드라 점수를 알려주지 않아 몇 점 인진 모른다.

 

첫 번째 풀이 (+12점)

public String solution(String s) {
	char[] arr = s.toCharArray();

    for(int i = 0; i < s.length(); i++) {
        if(i == 0 || arr[i-1] == ' ') {
            arr[i] = (Character.toString(arr[i]).toUpperCase()).charAt(0);

        }else {
            arr[i] = (Character.toString(arr[i]).toLowerCase()).charAt(0);
        }

    }
	String answer = String.valueOf(arr);

    return answer;
}

 

 

두 번째 풀이 ( 점수 알 수 없음 )

public static String solution(String s) {
	String answer = "";
	s = s.toLowerCase();
	String[] arr = s.split("");
		
	for(int i = 0; i < arr.length; i++) {
		if(i == 0 || arr[i-1].equals(" ")) {
			arr[i] = arr[i].toUpperCase();
		}
		answer += arr[i];

	}
	return answer;
}
반응형

댓글