2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

C# 프로그래머스 #32 - 배열의 원소 삭제하기, 뒤에서 5등까지, 0 떼기

2023. 9. 22. 11:18ㆍ프로그래머스 C# 코딩테스트
반응형

97. 배열의 원소 삭제하기

 

문제 설명

  • 정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ arr의 길이 ≤ 100 
  • 1 ≤ arr의 원소 ≤ 1,000 
  • arr의 원소는 모두 서로 다릅니다. 
  • 1 ≤ delete_list의 길이 ≤ 100 
  • 1 ≤ delete_list의 원소 ≤ 1,000 
  • delete_list의 원소는 모두 서로 다릅니다.

입출력 예시

  • 예제 1번의 arr의 원소 중 1000과 94가 delete_list에 있으므로 이 두 원소를 삭제한 [293, 395, 678]을 return 합니다.
  • 예제 2번의 arr의 원소 중 delete_list에 있는 원소는 없습니다. 따라서 arr 그대로인 [110, 66, 439, 785, 1]을 return 합니다.

풀이

using System;
using System.Collections.Generic;

public class Solution {
    public int[] solution(int[] arr, int[] delete_list) {
    // 새로운 빈 리스트 선언
       List<int> result = new List<int>();
       // foreach 반복문을 사용해 모든 arr의 요소를 result 리스트에 추가
        foreach(int number in arr){
            result.Add(number);
            // for 반복문 이용, delete_list의 요소가 result에 있다면 삭제
            for(int i = 0; i < delete_list.Length; i++){
                result.Remove(delete_list[i]);
            }
        }
        return result.ToArray(); // 리스트를 배열로 변환 후 반환
    }
}

 

98. 뒤에서 5등까지

 

문제 설명 

  • 정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

제한사항 

  • 6 ≤ num_list의 길이 ≤ 30 
  • 1 ≤ num_list의 원소 ≤ 100

입출력 예시 

  • [12, 4, 15, 46, 38, 1, 14]를 정렬하면 [1, 4, 12, 14, 15, 38, 46]이 되고, 앞에서 부터 5개를 고르면 [1, 4, 12, 14, 15]가 됩니다.

풀이

using System;
using System.Collections.Generic;

public class Solution {
    public int[] solution(int[] num_list) {
    	// 새로운 빈 리스트 선언
        List<int> result = new List<int>();
        // num_list 오름차순 정렬
        Array.Sort(num_list);
        // 가장 작은 수 5개를 result 리스트에 추가
        for(int i = 0; i < 5; i++){
            result.Add(num_list[i]);
        }
        return result.ToArray(); // 리스트를 배열로 변환 후 반환
    }
}

 

99. 0 떼기

 

문제 설명 

  • 정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.

제한사항 

  • 2 ≤ n_str ≤ 10 n_str이 "0"으로만 이루어진 경우는 없습니다.

입출력 예시 

  • "0010"의 가장 왼쪽에 연속으로 등장하는 "0"을 모두 제거하면 "10"이 됩니다.
  • "854020"는 가장 왼쪽에 0이 없으므로 "854020"을 return합니다.

풀이

using System;

public class Solution {
    public string solution(string n_str) {
    	// 0이 아닌 첫번째 인덱스를 찾기위한 변수 선언
        int notZero = 0;
        // while 반복문, notZero가 n_str의 길이보다 작거나, 
		// n_str의 해당 인덱스가 0이면 notZero++
        while(notZero < n_str.Length && n_str[notZero] == '0'){
            notZero++;
        }
        // n_str 문자열에서 처음으로 0이 아닌 수부터 끝까지 반환
        return n_str.Substring(notZero);
    }
}

 

  • 정답률 높은 순부터 풀이
  • 매일 3문항 풀이
반응형