프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 배열에서 문자열 대소문자 변환하기(Java)

Sigfriede 2023. 5. 1. 02:18

  문제 설명

  문자열 배열 strArr가 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.

 

  제한사항

  • 1 <= strArr <= 20
  • 1 <= strArr의 원소의 길이 <= 20
  • strArr의 모든 원소는 알파벳 소문자로 이루어져 있습니다.

 

  입출력 예

strArr result
["AAA", "BBB", "CCC", "DDD"] ["aaa", "BBB", "ccc", "DDD"]
["aBc", "AbC"] ["abc", "ABC"]
class Solution {
    public String[] solution(String[] strArr) {
        String[] answer = new String[strArr.length];
        for (int i = 0; i < strArr.length; i++) {
            if (i % 2 == 0) {
                answer[i] = strArr[i].toLowerCase();
            } else {
                answer[i] = strArr[i].toUpperCase();
            }
        }
        return answer;
    }
}

  strArr와 answer 배열의 크기는 같습니다. 따라서 answer 배열을 생성할 때, strArr의 길이만큼 지정합니다.

  for문이 strArr의 길이만큼 순회합니다. if문에서 배열의 인덱스를 구합니다. 만약 i를 2로 나누었을 때 나머지가 0이라면 맞아떨어진다는 뜻입니다. 이는 인덱스가 짝수라는 것을 의미하기도 합니다. 따라서 짝수 번째 인덱스를 모두 소문자로 바꾸어야 합니다. toLowerCase를 이용할 수 있습니다. 이 메소드는 원하는 문자열을 소문자로 바꾸어주는 기능을 합니다. strArr의 i번째 인덱스가 짝수라면 소문자로 바꾸어 answer의 i번째 인덱스에 할당합니다.

  만약 i번째 인덱스가 홀수라면 toUpperCase 메소드로 문자열이 대문자로 바뀝니다. 과정은 앞서 설명한 것과 같습니다. 소문자와 대문자의 차이만 있을 뿐입니다.