[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.