-
프로그래머스 코딩테스트(배열의 원소 삭제하기, 가까운 1 찾기, 중복된 문자 제거)코딩테스트 2023. 5. 15. 16:03
<배열의 원소 삭제하기>
문제 설명
정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.풀이
class Solution {
public int[] solution(int[] arr, int[] delete_list) {
int[] arr1 = new int[arr.length];
int n = 0;
for(int i=0;i<arr.length;i++){
int num =0;
for(int j=0;j<delete_list.length;j++){
if(arr[i]==delete_list[j]){
num=1;
break;
}
}
if(num==1) continue;
arr1[n] = arr[i];
n++;
}
int[] answer = new int[n];
for(int k=0;k<n;k++){
answer[k] = arr1[k];
}
return answer;
}
}다른 사람 풀이
import java.util.*; class Solution { public int[] solution(int[] arr, int[] delete_list) { List<Integer> list = new ArrayList<>(); for(int n : arr) { list.add(n); } for(int n: delete_list) { list.remove((Integer)n); } int[] answer = new int[list.size()]; for(int i=0; i<list.size(); i++){ answer[i] = list.get(i); } return answer; } }
<가까운 1 찾기>
문제 설명
정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.
단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.풀이
class Solution {
public int solution(int[] arr, int idx) {
int answer = -1;
for(int i=idx;i<arr.length;i++){
if(arr[i]==1) return i;
}
return answer;
}
}<중복된 문자 제거>
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.풀이
class Solution {
public String solution(String my_string) {
String answer = "";
for(int i=0;i<my_string.length();i++){
if(!answer.contains(my_string.charAt(i)+""))
answer += my_string.charAt(i);
}
return answer;
}
}'코딩테스트' 카테고리의 다른 글
프로그래머스 코딩테스트(A로 B 만들기, 팩토리얼, 2차원으로 만들기) (0) 2023.05.18 프로그래머스 코딩테스트(모스부호 (1), x사이의 개수, 배열 만들기 3) (1) 2023.05.17 프로그래머스 코딩테스트(ad 제거하기, 특별한 이차원 배열 2, 배열 비교하기) (0) 2023.05.14 프로그래머스 코딩테스트(문자열 정렬하기 (2), 할 일 목록, 콜라츠 수열 만들기) (0) 2023.05.13 프로그래머스 코딩테스트(주사위 게임 2, l로 만들기, 9로 나눈 나머지) (0) 2023.05.12