본문 바로가기
알고리즘 스터디/프로그래머스 스킬체크 레벨 1(끝)

[프로그래머스 스킬체크 레벨 1] 이상한 문자 만들기 문제 풀이 및 설명 - 자바[Java]

by 레일라오리덕 2020. 5. 14.
728x90

https://programmers.co.kr/

 

프로그래머스

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

programmers.co.kr

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

문제

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백 문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

 

 

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

 

결괏값 예시

 

s return
try hello world TrY HeLlO WoRlD

 

기본 제공 틀

 

class Solution {
    public String solution(String s) {
        String answer = "";
        return answer;
    }
}

 

풀이 [Java]

 

오늘은 글자의 인덱스를 홀수 또는 짝수로 구분하여 대문자 혹은 소문자로 문자를 변환하는 문제를 풀어보겠습니다.

아래 보시는 것과 같이, 0에서부터 문자열 s를 돌며, 문자 하나하나를 char형인 character에 담고, 만약, 담긴 character에 공백이 있다면, 공백은 그대로 공백으로 answer에 반환해서 넣고, 만약, index의 값이 2로 나누었을 때, 0으로 떨어지면 (짝수) answer에 해당 character를 Character.toUpperCase라는 메서드를 사용하여 대문자로 변환해주고, 0이 아닌 값으로 떨어진다면, Character.toLowerCase라는 메서드를 사용하여 소문자로 변환해주게 됩니다.

class Solution {
    public String solution(String s) {
        String answer = "";
        char character = ' ';
        for (int i=0; i<s.length();i++){
            character = s.charAt(i);
            if(character==' '){
                answer += " ";
            }else{
                if(i%2==0){
                answer += Character.toUpperCase(character);
            }else {
                answer += Character.toLowerCase(character);
            }
            }
        }
        return answer;
    }
}

 

채점 결과 [Java]

 

728x90

댓글