Post

[Programmers] #181875 - 배열에서 문자열 대소문자 변환하기 [Java][C++][Python]

[Programmers] #181875 - 배열에서 문자열 대소문자 변환하기 [Java][C++][Python]

문제 링크


1. 아이디어

문자열 배열 strArr의 문자열 원소들에 대해 홀수번째 인덱스의 문자열은 전부 대문자로, 짝수번째 인덱스의 문자열은 전부 소문자로 바꾸는 문제로 strArr를 순회하며 인덱스에 따라 분기 처리해서 변환만 하면 된다.


2. 복잡도

접근시간공간
풀이$O(N)$$O(N)$

($N$ = strArr의 길이. C++는 각 문자열을 제자리 수정해 반환하므로 공간 $O(1)$)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
    public String[] solution(String[] strArr) {
        for (int i = 0; i < strArr.length; i++) {
            if (i % 2 != 0) {
                strArr[i] = strArr[i].toUpperCase();
            } else {
                strArr[i] = strArr[i].toLowerCase();
            }
        }

        return strArr;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <bits/stdc++.h>
using namespace std;

vector<string> solution(vector<string> strArr) {
    for (int i = 0; i < strArr.size(); i++) {
        if (i % 2) {
            for (char& c : strArr[i]) c = toupper(c);
        } else {
            for (char& c : strArr[i]) c = tolower(c);
        }
    }

    return strArr;
}
1
2
def solution(strArr):
    return [s.upper() if i % 2 else s.lower() for i, s in enumerate(strArr)]

This post is licensed under CC BY 4.0 by the author.