문자열 여러 번 뒤집기
문제 설명
문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string은 영소문자로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e < my_string의 길이를 만족합니다.
1 ≤ queries의 길이 ≤ 1,000
입출력 예
my_string queries result
"rermgorpsam" [[2, 3], [0, 7], [5, 9], [6, 10]] "programmers"
입출력 예 설명
예제 1번의 my_string은 "rermgorpsam"이고 주어진 queries를 순서대로 처리하면 다음과 같습니다.
queries my_string
"rermgorpsam"
[2, 3] "remrgorpsam"
[0, 7] "progrmersam"
[5, 9] "prograsremm"
[6, 10] "programmers"
따라서 "programmers"를 return 합니다.
내 풀이
class Solution {
public String solution(String my_string, int[][] queries) {
char[] arr = my_string.toCharArray();
for (int[] query : queries) {
int start = query[0];
int end = query[1];
for (int j = start; j <= (start + end) / 2; j++) {
char temp = arr[j];
arr[j] = arr[start + end - j];
arr[start + end - j] = temp;
}
}
return new String(arr);
}
}
배열 만들기 5
문제 설명
문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다.
배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.
제한사항
0 ≤ s < 100
1 ≤ l ≤ 8
10l - 1 ≤ k < 10l
1 ≤ intStrs의 길이 ≤ 10,000
s + l ≤ intStrs의 원소의 길이 ≤ 120
입출력 예
intStrs k s l result
["0123456789","9876543210","9999999999999"] 50000 5 5 [56789, 99999]
입출력 예 설명
입출력 예 #1
idx에 따라 잘라낸 문자열과 그에 따른 ret의 변화를 표시하면 다음 표와 같습니다.
idx 잘라낸 문자열 ret
0 "56789" [56789]
1 "43210" [56789]
2 "99999" [56789, 99999]
따라서 [56789, 99999]를 return 합니다.
내 풀이
class Solution {
public int[] solution(String[] intStrs, int k, int s, int l) {
int[] answer = new int[intStrs.length];
int count = 0;
for (String str : intStrs) {
int intStr = Integer.parseInt(str.substring(s, s+l));
if (intStr > k) {
answer[count] = intStr;
count++;
}
}
int[] result = new int[count];
System.arraycopy(answer, 0, result, 0, count);
return result;
}
}
부분 문자열 이어 붙여 문자열 만들기
문제 설명
길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ my_strings의 길이 = parts의 길이 ≤ 100
1 ≤ my_strings의 원소의 길이 ≤ 100
parts[i]를 [s, e]라 할 때, 다음을 만족합니다.
0 ≤ s ≤ e < my_strings[i]의 길이
입출력 예
my_strings parts result
["progressive", "hamburger", "hammer", "ahocorasick"] [[0, 4], [1, 2], [3, 5], [7, 7]] "programmers"
입출력 예 설명
입출력 예 #1
예제 1번의 입력을 보기 좋게 표로 나타내면 다음과 같습니다.
i my_strings[i] parts[i] 부분 문자열
0 "progressive" [0, 4] "progr"
1 "hamburger" [1, 2] "am"
2 "hammer" [3, 5] "mer"
3 "ahocorasick" [7, 7] "s"
각 부분 문자열을 순서대로 이어 붙인 문자열은 "programmers"입니다. 따라서 "programmers"를 return 합니다.
내 풀이
class Solution {
public String solution(String[] my_strings, int[][] parts) {
String answer = "";
int count = 0;
for (int[] part : parts) {
int start = part[0];
int end = part[1];
answer += my_strings[count].substring(start, end + 1);
count++;
}
return answer;
}
}
문자열의 뒤의 n글자
문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 뒤의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string은 숫자와 알파벳으로 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
1 ≤ n ≤ my_string의 길이
입출력 예
my_string n result
"ProgrammerS123" 11 "grammerS123"
"He110W0r1d" 5 "W0r1d"
입출력 예
입출력 예 #1
예제 1번의 my_string에서 뒤의 11글자는 "grammerS123"이므로 이 문자열을 return 합니다.
입출력 예 #2
예제 2번의 my_string에서 뒤의 5글자는 "W0r1d"이므로 이 문자열을 return 합니다.
내 풀이
class Solution {
public String solution(String my_string, int n) {
return my_string.substring(my_string.length() - n);
}
}
간략해서 기쁘다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
코딩 기초 트레이닝 9 (1) | 2023.09.18 |
---|---|
코딩 기초 트레이닝 8 (0) | 2023.09.15 |
코딩 기초 트레이닝 6 (2) | 2023.09.03 |
코딩 기초 트레이닝 5 (0) | 2023.08.04 |
코딩 기초 트레이닝 4 (0) | 2023.08.02 |