n 번째 원소부터
문제 설명
정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 30
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ num_list의 길이
입출력 예
num_list n result
[2, 1, 6] 3 [6]
[5, 2, 1, 7, 5] 2 [2, 1, 7, 5]
입출력 예 설명
입출력 예 #1
[2, 1, 6]의 세 번째 원소부터 마지막 원소까지의 모든 원소는 [6]입니다.
입출력 예 #2
[5, 2, 1, 7, 5]의 두 번째 원소부터 마지막 원소까지의 모든 원소는 [2, 1, 7, 5]입니다.
import java.util.*;
class Solution {
public int[] solution(int[] num_list, int n) {
return Arrays.copyOfRange(num_list, n - 1, num_list.length);
}
}
순서 바꾸기
문제 설명
정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 30
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ num_list의 길이
입출력 예
num_list n result
[2, 1, 6] 1 [1, 6, 2]
[5, 2, 1, 7, 5] 3 [7, 5, 5, 2, 1]
입출력 예 설명
입출력 예 #1
[2, 1, 6]에서 첫 번째 이후의 원소는 [1, 6]이고 첫 번째까지의 원소는 [2]입니다. 두 리스트를 이어 붙이면 [1, 6, 2]가 됩니다.
입출력 예 #2
[5, 2, 1, 7, 5]에서 세 번째 이후의 원소는 [7, 5]이고 세 번째까지의 원소는 [5, 2, 1]입니다. 두 리스트를 이어 붙이면 [7, 5, 5, 2, 1]가 됩니다.
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] num_list, int n) {
int[] front = Arrays.copyOfRange(num_list, n, num_list.length);
int[] back = Arrays.copyOfRange(num_list, 0, n);
return IntStream.concat(Arrays.stream(front), Arrays.stream(back)).toArray();
}
}
왼쪽 오른쪽
문제 설명
문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l"이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return하도록 solution 함수를 완성해주세요. "l"이나 "r"이 없다면 빈 리스트를 return합니다.
제한사항
1 ≤ str_list의 길이 ≤ 20
str_list는 "u", "d", "l", "r" 네 개의 문자열로 이루어져 있습니다.
입출력 예
str_list result
["u", "u", "l", "r"] ["u", "u"]
["l"] []
입출력 예 설명
입출력 예 #1
"r"보다 "l"이 먼저 나왔기 때문에 "l"의 왼쪽에 있는 문자열들을 담은 리스트인 ["u", "u"]를 return합니다.
입출력 예 #2
"l"의 왼쪽에 문자열이 없기 때문에 빈 리스트를 return합니다.
import java.util.*;
class Solution {
public String[] solution(String[] str_list) {
String[] answer = {};
for (int i = 0; i < str_list.length; i++) {
if (str_list[i].equals("l")) {
answer = Arrays.copyOfRange(str_list, 0, i);
break;
} else if (str_list[i].equals("r")){
answer = Arrays.copyOfRange(str_list, i + 1, str_list.length);
break;
}
}
return answer;
}
}
n 번째 원소까지
문제 설명
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 30
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ num_list의 길이 ___
입출력 예
num_list n result
[2, 1, 6] 1 [2]
[5, 2, 1, 7, 5] 3 [5, 2, 1]
입출력 예 설명
입출력 예 #1
[2, 1, 6]의 첫 번째 원소부터 첫 번째 원소까지의 모든 원소는 [2]입니다.
입출력 예 #2
[5, 2, 1, 7, 5]의 첫 번째 원소부터 세 번째 원소까지의 모든 원소는 [5, 2, 1]입니다.
import java.util.*;
class Solution {
public int[] solution(int[] num_list, int n) {
return Arrays.copyOfRange(num_list, 0, n);
}
}
n개 간격의 원소들
문제 설명
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
5 ≤ num_list의 길이 ≤ 20
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ 4
입출력 예
num_list n result
[4, 2, 6, 1, 7, 6] 2 [4, 6, 7]
[4, 2, 6, 1, 7, 6] 4 [4, 7]
입출력 예 설명
입출력 예 #1
[4, 2, 6, 1, 7, 6]에서 2개 간격으로 저장되어 있는 원소들은 [4, 6, 7]입니다.
입출력 예 #2
[4, 2, 6, 1, 7, 6]에서 4개 간격으로 저장되어 있는 원소들은 [4, 7]입니다.
import java.util.*;
class Solution {
public int[] solution(int[] num_list, int n) {
ArrayList<Integer> arrList = new ArrayList<>();
for (int i = 0; i < num_list.length; i += n) {
arrList.add(num_list[i]);
}
return arrList.stream().mapToInt(Integer::intValue).toArray();
}
}
홀수 VS 짝수
문제 설명
정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.
제한사항
5 ≤ num_list의 길이 ≤ 50
-9 ≤ num_list의 원소 ≤ 9
입출력 예
num_list result
[4, 2, 6, 1, 7, 6] 17
[-1, 2, 5, 6, 3] 8
입출력 예 설명
입출력 예 #1
홀수 번째 원소들의 합은 4 + 6 + 7 = 17, 짝수 번째 원소들의 합은 2 + 1 + 6 = 9 이므로 17을 return합니다.
입출력 예 #2
홀수 번째 원소들의 합은 -1 + 5 + 3 = 7, 짝수 번째 원소들의 합은 2 + 6 = 8 이므로 8을 return합니다.
※2023년 04월 24일 테스트 케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수 있습니다.
class Solution {
public int solution(int[] num_list) {
int even = 0;
int odd = 0;
for (int i = 0; i < num_list.length; i++) {
if ((i + 1) % 2 == 0) {
even += num_list[i];
} else {
odd += num_list[i];
}
}
return even > odd ? even : odd;
}
}
5명씩
문제 설명
최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.
제한사항
5 ≤ names의 길이 ≤ 30
1 ≤ names의 원소의 길이 ≤ 10
names의 원소는 영어 알파벳 소문자로만 이루어져 있습니다.
입출력 예
names result
["nami", "ahri", "jayce", "garen", "ivern", "vex", "jinx"] ["nami", "vex"]
입출력 예 설명
입출력 예 #1
앞에서부터 5명씩 두 그룹으로 묶을 수 있습니다. ["nami", "ahri", "jayce", "garen", "ivern"], ["vex", "jinx"] 이 두 그룹에서 가장 앞에 서있는 사람들의 이름을 담은 리스트인 ["nami", "vex"]를 return합니다.
import java.util.*;
class Solution {
public String[] solution(String[] names) {
ArrayList<String> arrList = new ArrayList<>();
for (int i = 0; i < names.length; i += 5) {
arrList.add(names[i]);
}
return arrList.toArray(new String[arrList.size()]);
}
}
할 일 목록
문제 설명
오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ todo_list의 길이 1 ≤ 100
2 ≤ todo_list의 원소의 길이 ≤ 20
todo_list의 원소는 영소문자로만 이루어져 있습니다.
todo_list의 원소는 모두 서로 다릅니다.
finished[i]는 true 또는 false이고 true는 todo_list[i]를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다.
아직 마치지 못한 일이 적어도 하나 있습니다.
입출력 예
todo_list finished result
["problemsolving", "practiceguitar", "swim", "studygraph"] [true, false, true, false] ["practiceguitar", "studygraph"]
입출력 예 설명
입출력 예 #1
예제 1번의 todo_list 중에서 "problemsolving"과 "swim"은 마쳤고, "practiceguitar"와 "studygraph"는 아직 마치지 못했으므로 todo_list에서 나온 순서대로 담은 문자열 배열 ["practiceguitar", "studygraph"]를 return 합니다.
import java.util.*;
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
ArrayList<String> arrList = new ArrayList<>();
for (int i = 0; i < todo_list.length; i++) {
if (finished[i] == false) {
arrList.add(todo_list[i]);
}
}
return arrList.toArray(new String[arrList.size()]);
}
}
n보다 커질 때까지 더하기
문제 설명
정수 배열 numbers와 정수 n이 매개변수로 주어집니다. numbers의 원소를 앞에서부터 하나씩 더하다가 그 합이 n보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ numbers의 길이 ≤ 100
1 ≤ numbers의 원소 ≤ 100
0 ≤ n < numbers의 모든 원소의 합
입출력 예
numbers n result
[34, 5, 71, 29, 100, 34] 123 139
[58, 44, 27, 10, 100] 139 239
입출력 예 설명
입출력 예 #1
예제 1번의 numbers를 문제 설명대로 더해가는 과정을 나타내면 다음의 표와 같습니다.
i numbers[i] sum
0
0 34 34
1 5 39
2 71 110
3 29 139
29를 더한 뒤에 sum 값은 139이고 n 값인 123보다 크므로 139를 return 합니다.
예제 2번의 numbers의 마지막 원소 전까지의 원소를 sum에 더하면 139입니다. 139는 n 값인 139보다 크지 않고 마지막 원소인 100을 더하면 139보다 커지므로 239를 return 합니다.
class Solution {
public int solution(int[] numbers, int n) {
int answer = 0;
for (int i = 0; i < numbers.length; i++) {
if (answer > n) {
return answer;
}
answer += numbers[i];
}
return answer;
}
}
수열과 구간 쿼리 1
문제 설명
정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e] 꼴입니다.
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 arr[i]에 1을 더합니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ arr의 길이 ≤ 1,000
0 ≤ arr의 원소 ≤ 1,000,000
1 ≤ queries의 길이 ≤ 1,000
0 ≤ s ≤ e < arr의 길이
입출력 예
arr queries result
[0, 1, 2, 3, 4] [[0, 1],[1, 2],[2, 3]] [1, 3, 4, 4, 4]
입출력 예 설명
입출력 예 #1
각 쿼리에 따라 arr가 다음과 같이 변합니다.
i queries[i] arr
- - [0, 1, 2, 3, 4]
0 [0,1] [1, 2, 2, 3, 4]
1 [1,2] [1, 3, 3, 3, 4]
2 [2,3] [1, 3, 4, 4, 4]
따라서 [1, 3, 4, 4, 4]를 return 합니다.
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = {};
for (int[] query : queries) {
for (int i = query[0]; i <= query[1]; i++) {
arr[i] += 1;
}
}
return arr;
}
}
조건에 맞게 수열 변환하기 1
문제 설명
정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다. 그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ arr의 길이 ≤ 1,000,000
1 ≤ arr의 원소의 값 ≤ 100
입출력 예
arr result
[1, 2, 3, 100, 99, 98] [2, 2, 6, 50, 99, 49]
입출력 예 설명
입출력 예 #1
1, 3은 50 미만의 홀수 이므로 2를 곱하고, 100, 98은 50 이상의 짝수이므로 2로 나눕니다.
나머지 값들은 변경 조건에 해당하지 않으므로 바꾸지 않습니다.
따라서 [2, 2, 6, 50, 99, 49]를 return 합니다.
class Solution {
public int[] solution(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 50 && arr[i] % 2 == 0) {
arr[i] = arr[i] / 2;
} else if (arr[i] < 50 && arr[i] % 2 != 0) {
arr[i] = arr[i] * 2;
}
}
return arr;
}
}
조건에 맞게 수열 변환하기 2
문제 설명
정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱하고 다시 1을 더합니다.
이러한 작업을 x번 반복한 결과인 배열을 arr(x)라고 표현했을 때, arr(x) = arr(x + 1)인 x가 항상 존재합니다. 이러한 x 중 가장 작은 값을 return 하는 solution 함수를 완성해 주세요.
단, 두 배열에 대한 "="는 두 배열의 크기가 서로 같으며, 같은 인덱스의 원소가 각각 서로 같음을 의미합니다.
제한사항
1 ≤ arr의 길이 ≤ 1,000,000
1 ≤ arr의 원소의 값 ≤ 100
입출력 예
arr result
[1, 2, 3, 100, 99, 98] 5
입출력 예 설명
입출력 예 #1
위 작업을 반복하면 다음과 같이 arr가 변합니다.
반복 횟수 arr
0 [1, 2, 3, 100, 99, 98]
1 [3, 2, 7, 50, 99, 49]
2 [7, 2, 15, 25, 99, 99]
3 [15, 2, 31, 51, 99, 99]
4 [31, 2, 63, 51, 99, 99]
5 [63, 2, 63, 51, 99, 99]
6 [63, 2, 63, 51, 99, 99]
이후로 arr가 변하지 않으며, arr(5) = arr(6)이므로 5를 return 합니다.
import java.util.*;
class Solution {
public int solution(int[] arr) {
int answer = 0;
boolean bool = true;
while(bool) {
int[] currentArr = Arrays.copyOf(arr, arr.length);
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 50 && arr[i] % 2 == 0) {
arr[i] = arr[i] / 2;
} else if (arr[i] < 50 && arr[i] % 2 != 0) {
arr[i] = arr[i] * 2 + 1;
}
}
answer++;
if (Arrays.equals(currentArr, arr)) {
bool = false;
}
}
return answer - 1;
}
}
1로 만들기
문제 설명
정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다.
10 / 2 = 5
(5 - 1) / 2 = 4
4 / 2 = 2
2 / 2 = 1
위와 같이 4번의 나누기 연산으로 1이 되었습니다.
정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return하도록 solution 함수를 완성해주세요.
제한사항
3 ≤ num_list의 길이 ≤ 15
1 ≤ num_list의 원소 ≤ 30
입출력 예
num_list result
[12, 4, 15, 1, 14] 11
입출력 예 설명
입출력 예 #1
12는 3번, 4는 2번, 15는 3번, 1은 0번, 14는 3번의 연산이 필요하기 때문에 총 11번의 연산이 필요합니다.
class Solution {
public int solution(int[] num_list) {
int answer = 0;
for (int num : num_list) {
while (num > 1) {
if (num % 2 == 0) {
num /= 2;
answer++;
} else {
num = (num - 1) / 2;
answer++;
}
}
}
return answer;
}
}
길이에 따른 연산
문제 설명
정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 20
1 ≤ num_list의 원소 ≤ 9
입출력 예
num_list result
[3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] 51
[2, 3, 4, 5] 120
입출력 예 설명
입출력 예 #1
리스트의 길이가 13이므로 모든 원소의 합인 51을 return합니다.
입출력 예 #2
리스트의 길이가 4이므로 모든 원소의 곱인 120을 return합니다.
class Solution {
public int solution(int[] num_list) {
int answer = 0;
if (num_list.length >= 11) {
for (int num : num_list) {
answer += num;
}
} else {
answer = 1;
for (int num : num_list) {
answer *= num;
}
}
return answer;
}
}
원하는 문자열 찾기
문제 설명
알파벳으로 이루어진 문자열 myString과 pat이 주어집니다. myString의 연속된 부분 문자열 중 pat이 존재하면 1을 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요.
단, 알파벳 대문자와 소문자는 구분하지 않습니다.
제한사항
1 ≤ myString의 길이 ≤ 100,000
1 ≤ pat의 길이 ≤ 300
myString과 pat은 모두 알파벳으로 이루어진 문자열입니다.
입출력 예
myString pat return
"AbCdEfG" "aBc" 1
"aaAA" "aaaaa" 0
입출력 예 설명
입출력 예 #1
"AbCdEfG"의 0~2번 인덱스의 문자열은 "AbC"이며, 이는 pat인 "aBc"와 같습니다. 따라서 1을 return 합니다.
입출력 예 #2
myString의 길이가 pat보다 더 짧기 때문에 myString의 부분 문자열 중 pat와 같은 문자열이 있을 수 없습니다. 따라서 0을 return 합니다.
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
myString = myString.toUpperCase();
pat = pat.toUpperCase();
if (myString.contains(pat)) {
answer = 1;
}
return answer;
}
}
대문자로 바꾸기
문제 설명
알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 대문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ myString의 길이 ≤ 100,000
myString은 알파벳으로 이루어진 문자열입니다.
입출력 예
myString result
"aBcDeFg" "ABCDEFG"
"AAA" "AAA"
class Solution {
public String solution(String myString) {
String answer = "";
answer = myString.toUpperCase();
return answer;
}
}
소문자로 바꾸기
문제 설명
알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 소문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ myString의 길이 ≤ 100,000
myString은 알파벳으로 이루어진 문자열입니다.
입출력 예
myString result
"aBcDeFg" "abcdefg"
"aaa" "aaa"
class Solution {
public String solution(String myString) {
return myString.toLowerCase();
}
}
배열에서 문자열 대소문자 변환하기
문제 설명
문자열 배열 strArr가 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ strArr ≤ 20
1 ≤ strArr의 원소의 길이 ≤ 20
strArr의 원소는 알파벳으로 이루어진 문자열 입니다.
입출력 예
strArr result
["AAA","BBB","CCC","DDD"] ["aaa","BBB","ccc","DDD"]
["aBc","AbC"] ["abc","ABC"]
입출력 예 설명
입출력 예 #1
strArr[0]과 strArr[2]는 짝수번째 인덱스의 문자열이므로 모두 소문자로 바꿔서 "aaa"와 "ccc"가 됩니다.
strArr[1]과 strArr[3]는 홀수번째 인덱스의 문자열인데 원래 대문자이므로 그대로 둡니다.
따라서 ["aaa","BBB","ccc","DDD"]를 return 합니다.
입출력 예 #2
strArr[0]은 짝수번째 인덱스의 문자열이므로 소문자로 바꿔서 "abc"가 됩니다.
strArr[1]은 홀수번째 인덱스의 문자열이므로 대문자로 바꿔서 "ABC"가 됩니다.
따라서 ["abc","ABC"]를 return 합니다.
class Solution {
public String[] solution(String[] strArr) {
for (int i = 0; i < strArr.length; i++) {
if (i % 2 == 0) {
strArr[i] = strArr[i].toLowerCase();
} else {
strArr[i] = strArr[i].toUpperCase();
}
}
return strArr;
}
}
A 강조하기
문제 설명
문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.
제한사항
1 ≤ myString의 길이 ≤ 20
myString은 알파벳으로 이루어진 문자열입니다.
입출력 예
myString result
"abstract algebra" "AbstrAct AlgebrA"
"PrOgRaMmErS" "progrAmmers"
입출력 예 설명
입출력 예 #1
0번, 5번, 9번, 15번 인덱스의 "a"는 소문자이므로 전부 대문자로 고쳐줍니다.
다른 문자들은 전부 "a"가 아닌 소문자이므로 바꾸지 않습니다.
따라서 "AbstrAct AlgebrA"를 return 합니다.
입출력 예 #2
0번, 2번, 4번, 6번, 8번, 10번 인덱스의 문자들은 "A"가 아닌 대문자이므로 전부 소문자로 고쳐줍니다.
5번 인덱스의 "a"는 소문자이므로 대문자로 고쳐줍니다.
다른 문자들은 전부 "a"가 아닌 소문자이므로 바꾸지 않습니다.
따라서 "progrAmmers"를 return 합니다.
class Solution {
public String solution(String myString) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < myString.length(); i++) {
char c = myString.charAt(i);
if (c == 'a' || c == 'A') {
result.append(Character.toUpperCase(c));
} else {
result.append(Character.toLowerCase(c));
}
}
return result.toString();
}
}
원래 내가 푼 풀이만 올리려고 했는데 이 풀이를 보고 내가 얼마나 멍청한지를 또 깨달았다....
class Solution {
public String solution(String myString) {
myString = myString.toLowerCase();
myString = myString.replace('a', 'A');
return myString;
}
}
특정한 문자를 대문자로 바꾸기
문제 설명
영소문자로 이루어진 문자열 my_string과 영소문자 1글자로 이루어진 문자열 alp가 매개변수로 주어질 때, my_string에서 alp에 해당하는 모든 글자를 대문자로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ my_string의 길이 ≤ 1,000
입출력 예
my_string alp result
"programmers" "p" "Programmers"
"lowercase" "x" "lowercase"
입출력 예 설명
입출력 예 #1
예제 1번의 my_string은 "programmers"이고 alp가 "p"이므로 my_string에 모든 p를 대문자인 P로 바꾼 문자열 "Programmers"를 return 합니다.
입출력 예 #2
예제 2번의 alp는 "x"이고 my_string에 x는 없습니다. 따라서 "lowercase"를 return 합니다.
class Solution {
public String solution(String my_string, String alp) {
return my_string.toLowerCase().replace(alp, alp.toUpperCase());
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Level0 - 겹치는 선분의 길이 (0) | 2024.07.18 |
---|---|
Level0 - 안전지대 (0) | 2024.07.17 |
코딩 기초 트레이닝 8 (0) | 2023.09.15 |
코딩 기초 트레이닝 7 (0) | 2023.09.04 |
코딩 기초 트레이닝 6 (2) | 2023.09.03 |