Post

[Programmers] #181874 - A 강조하기 [Java][C++][Python]

[Programmers] #181874 - A 강조하기 [Java][C++][Python]

문제 링크


1. 아이디어

문자열 myString에서 알파벳 "a"는 전부 "A"로, "A"가 아닌 알파벳 대문자는 소문자로 변환하는 문제로 조건 분기를 통해 변환만 하면 된다.


2. 복잡도

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

($N$ = myString의 길이)


3. 코드

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
    public String solution(String myString) {
        StringBuilder sb = new StringBuilder();
        for (char c : myString.toCharArray()) {
            if (c == 'a') {
                sb.append('A');
            } else if ('B' <= c && c <= 'Z') {
                sb.append(Character.toLowerCase(c));
            } else {
                sb.append(c);
            }
        }

        return sb.toString();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>
using namespace std;

string solution(string myString) {
    string s;
    for (char c : myString) {
        if (c == 'a') {
            s += 'A';
        } else if ('B' <= c && c <= 'Z') {
            s += tolower(c);
        } else {
            s += c;
        }
    }

    return s;
}
1
2
3
4
5
6
7
import string


def solution(myString):
    frm = "a" + string.ascii_uppercase[1:]
    to = "A" + string.ascii_lowercase[1:]
    return myString.translate(str.maketrans(frm, to))

frm에는 aBCDE...XYZ를, to에는 Abcde...xyz를 저장한 후 str.maketrans로 변환을 한번에 했다.


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