Post

[Programmers] #181834 - l로 만들기 [Java][C++][Python]

[Programmers] #181834 - l로 만들기 [Java][C++][Python]

문제 링크


1. 아이디어

알파벳 소문자로 이루어진 문자열 myString이 주어졌을 때, myString에서 알파벳 l보다 앞서는 문자들은 전부 l로 바꾼 문자열을 반환하는 간단한 문제다.


2. 복잡도

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

($N$ = myString의 길이. C++은 인자 문자열을 제자리 수정해 그대로 반환하므로 공간 $O(1)$)


3. 코드

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

1
2
3
4
5
6
7
8
9
10
class Solution {
    public String solution(String myString) {
        char[] arr = myString.toCharArray();
        for (int i = 0; i < arr.length; i++) {
            if ('a' <= arr[i] && arr[i] < 'l') arr[i] = 'l';
        }

        return new String(arr);
    }
}
1
2
3
4
5
6
7
8
9
10
#include <bits/stdc++.h>
using namespace std;

string solution(string myString) {
    for (char& c : myString) {
        if ('a' <= c && c < 'l') c = 'l';
    }

    return myString;
}
1
2
def solution(myString):
    return myString.translate(str.maketrans("abcdefghijk", "l" * 11))

str.maketrans를 활용해서 abcdefghijk를 lllllllllll로 치환했다.


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