프로그래머스 문제 (Java) 10.15
문제 1:
글자 지우기
문제 설명
문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ indices의 길이 < my_string의 길이 ≤ 100
my_string은 영소문자로만 이루어져 있습니다
0 ≤ indices의 원소 < my_string의 길이
indices의 원소는 모두 서로 다릅니다.
입출력 예
my_string indices result
"apporoograpemmemprs" [1, 16, 6, 15, 0, 10, 11, 3] "programmers"
코드 :
class Solution {
public String solution(String my_string, int[] indices) {
String answer = "";
String[] str = my_string.split("");
for(int i = 0; i < indices.length; i++){
str[indices[i]] = " ";
}
for(String st : str){
if(st.equals(" ")){
continue;
}else {
answer += st;
}
}
return answer;
}
}
문제 2 :
나누어 떨어지는 숫자 배열
문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해 주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한사항
arr은 자연수를 담은 배열입니다.
정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr [j]입니다.
divisor는 자연수입니다.
array는 길이 1 이상인 배열입니다.
입출력 예
arr divisor return
[5, 9, 7, 10] 5 [5, 10]
[2, 36, 1, 3] 1 [1, 2, 3, 36]
[3,2,6] 10 [-1]
코드 :
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
int[] answer = {};
List<Integer> list = new ArrayList<>();
for(int i : arr){
if(i % divisor == 0){
list.add(i);
}
}
if(list.isEmpty()){
list.add(-1);
}
answer = list.stream().mapToInt(i -> i).toArray();
Arrays.sort(answer);
return answer;
}
}
문제 3:
배열 만들기 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]
코드 :
import java.util.*;
class Solution {
public int[] solution(String[] intStrs, int k, int s, int l) {
int[] answer = {};
List<Integer> list = new ArrayList<>();
for(String is : intStrs){
String st = is.substring(s,s+l);
int intS = Integer.parseInt(st);
if(intS > k){
list.add(intS);
}
}
answer = list.stream().mapToInt(i -> i).toArray();
return answer;
}
}