https://programmers.co.kr/learn/courses/30/lessons/12910

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

array์˜ ๊ฐ element ์ค‘ divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” element๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด ๋ฐฐ์—ด์— -1์„ ๋‹ด์•„ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ arr์€ ์ž์—ฐ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์ •์ˆ˜ i, j์— ๋Œ€ํ•ด i ≠ j ์ด๋ฉด arr[i] ≠ arr[j] ์ž…๋‹ˆ๋‹ค. divisor๋Š” ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. array๋Š” ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ arr divi

programmers.co.kr

 

 

 

< ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด >

 

 

 

 

 

โ—‹ ์ฒ˜์Œ ํ‘ผ ํ’€์ด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Arrays;
class Solution {
  public int[] solution(int[] arr, int divisor) {
      int[] temp2;
      int[] temp = new int[arr.length];
      int k=0;
      //n์œผ๋กœ ๋‚˜๋ˆ ์ง€๋Š” ๊ฒƒ์„ temp์— ์ €์žฅ
      for(int i=0; i<arr.length; i++){
          if(arr[i]%divisor==0){  
              temp[k]=arr[i]; 
              k++;  }
      }
      //k=0์ผ ๋•Œ 0 ์•„๋‹ ๋•Œ๋กœ ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌ
      if(k==0){
          temp2 =new int[1];
          temp2[0]=-1;
      }else{
          temp2 =Arrays.copyOfRange(temp,0,k);
          Arrays.sort(temp2);
      }
      return temp2;
  }
}

 

โ—‹ ์ƒ๊ฐ๊ณผ์ •

1.divisor๋กœ ๋‚˜๋ˆ„์–ด์ง€๋Š” ์ˆ˜๋ฅผ temp ๋ฐฐ์—ด์— ๋„ฃ๋Š”๋‹ค

2.temp์˜ ๊ธธ์ด๋ฅผ arr.length๋กœ ํ•ด์„œ ๋‹ด๊ธฐ์ง€ ์•Š์€ ์ชฝ์ด 0์œผ๋กœ ์ดˆ๊ธฐํ™” ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌ์‹œ์— 0๋„ ์ •๋ ฌ ๋˜๊ธฐ ๋•Œ๋ฌธ์— K๋กœ ๊ฐ’์ด ๋„ฃ์–ด ์งˆ๋•Œ     ๋งˆ๋‹ค ์นด์šดํŠธ ํ•ด์„œ k๊ฐ’์œผ๋กœ temp2์— ๋ณต์‚ฌํ•ด์ค€๋‹ค.

3.Arrays.sort() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์ •๋ ฌํ•œ๋‹ค.

 

โ—‹ ๊ฐ™์ด ๋ณด๊ณ ์‹ถ์€ ํ’€์ด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Arrays;
 
class Divisible {
    public int[] divisible(int[] array, int divisor) {
        //ret์— array์— ํฌํ•จ๋œ ์ •์ˆ˜์ค‘, divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋„ฃ์œผ์„ธ์š”.
        return Arrays.stream(array).filter(factor -> factor % divisor == 0).toArray();
    }
    // ์•„๋ž˜๋Š” ํ…Œ์ŠคํŠธ๋กœ ์ถœ๋ ฅํ•ด ๋ณด๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
    public static void main(String[] args) {
        Divisible div = new Divisible();
        int[] array = {59710};
        System.out.println( Arrays.toString( div.divisible(array, 5) ));
    }
}
cs

 

โ—‹ ๋‹ค์‹œ ํ‘ผ ํ’€์ด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Arrays;
class Solution {
  public int[] solution(int[] arr, int divisor) {
        int[] temp =new int[arr.length];
        int[] answer;
        int cnt=0;
      for(int i =0; i<arr.length;i++){
          if(arr[i]%divisor==0){
            temp[cnt]=arr[i]; 
              cnt++;
          }
      }     
      
      if(cnt==0){
          answer =new int[1];
          answer[0]=-1;
          
      }else { 
           answer =new int[cnt];
          for(int i=0; i<temp.length; i++){
            if(temp[i]!=0)
              answer[i]=temp[i];
            }
      }
      Arrays.sort(answer);
   
      return answer;
 
  }
}
cs

 

+ Recent posts