
내가 생각했을때 문제에서 원하는부분
문자열 배열 strArr가 주어집니다.
모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.
내가 이 문제를 보고 생각해본 부분
입력 배열 strArr의 길이로 새 배열 answer를 만든다.
반복문으로 인덱스 i를 0부터 끝까지 순회한다.
짝수 인덱스일 경우 strArr[i]를 toLowerCase()로 모두 소문자로 변환해 answer[i]에 저장한다.
홀수 인덱스일 경우 strArr[i]를 toUpperCase()로 모두 대문자로 변환해 answer[i]에 저장한다.
마지막에 변환된 배열 answer를 반환한다.
입력받은 문자열 배열을 출력할 때 [ ] 대괄호로 감싼다.
배열 각 요소는 큰따옴표 "로 감싸 출력한다.
요소 사이에는 쉼표와 공백으로 구분한다.
마지막 요소 뒤에 쉼표가 붙지 않도록 처리한다.
배열 출력 형식을 문제에서 요구하는 모양에 맞추기 위한 유틸 함수다.
두 개의 테스트용 배열 input1과 input2를 만들었다.
각각을 solution 메서드로 처리한 결과를 받아 result1, result2에 저장한다.
그리고 printArrayWithBrackets 함수를 통해 결과를 배열 형태로 깔끔하게 출력한다.
이를 통해 결과가 [ "aaa", "BBB", "ccc", "DDD" ]처럼 문제 예시처럼 보인다.
코드로 구현
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;
}
}
프로그래머스 코드
package programmers;
// 프로그래머스 배열에서 문자열 대소문자 변환하기
public class Main70 {
public static 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;
}
public static void printArrayWithBrackets(String[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print("\"" + arr[i] + "\"");
if (i != arr.length - 1) {
System.out.print(", ");
}
}
System.out.println("]");
}
public static void main(String[] args) {
String[] input1 = {"AAA", "BBB", "CCC", "DDD"};
String[] result1 = solution(input1);
printArrayWithBrackets(result1);
String[] input2 = {"aBc", "AbC"};
String[] result2 = solution(input2);
printArrayWithBrackets(result2);
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.