알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


Think🤔
class Solution {
    public String solution(String s) {
        s = s.toLowerCase();
        String[] splitS = s.split(" ");
        String answer = "";
        for(String str : splitS){
			answer += str.replace(str.charAt(0), str.toUpperCase().charAt(0));
			answer += " ";
		}
		
        return answer.trim();
    }
}

시간 느림 , 굳이 짜르고 붙여야 됨 , 안되는 경우도 있음..
class Solution {
    public String solution(String s) {
		s = s.toLowerCase();

        String answer = "";
        answer += String.valueOf(s.charAt(0)).toUpperCase();
        for(int i=1; i<s.length(); i++) {
        	if(s.charAt(i) == ' ' && i < s.length()) {
        		answer += " " + String.valueOf(s.charAt(i+1)).toUpperCase();
        		i++;
        	}else {
        		answer += s.charAt(i);
        	}
        }
        
        return answer;
    }
}

런타임 에러 및 실패

공백이 여러개인 경우 공백을 split로 짤라서 지워버렸기 때문에 이부분을 넣어줘야 함.
class Solution {
    public String solution(String s) {
		s = s.toLowerCase().trim(); // 처음에 공백 제거
		
		String answer = String.valueOf(s.charAt(0)).toUpperCase();
		
		for(int i=1; i<s.length(); i++) {
			if(s.charAt(i) == ' ' && s.charAt(i+1) == ' ') {
				answer += " ";
			}else if(s.charAt(i-1) == ' ' && s.charAt(i) != ' '){
				answer += String.valueOf(s.charAt(i)).toUpperCase();
			}else {
				answer += s.charAt(i);
			}
		}
        
        return answer;
    }
}

테스트 케이스 한개 실패, 살짝 어거지 느낌의 코딩 연속 공백을 방지 하긴 했는데 뭐에서 걸리지는 모르겠음.

Solution✍
class Solution {
    public String solution(String s) {
		s = s.toLowerCase(); // 처음에 공백 제거
		
		String answer = String.valueOf(s.charAt(0)).toUpperCase();
		
		for(int i=1; i<s.length(); i++) {
			if(s.charAt(i-1) == ' ' && s.charAt(i) != ' '){
				answer += String.valueOf(s.charAt(i)).toUpperCase();
			}else {
				answer += s.charAt(i);
			}
		}
        
        return answer;
    }
}

맨 처음에 trim()으로 짤라서 마지막에 공백이 두개 들어가는 경우를 계산하지 못헀음 ..

Review🤩

엄청 쉬울 것 같애서 얕봤다가 오래 걸림 ㅜ


 

+ Recent posts