๊ฐœ๋ฐœ์ผ์ง€

[Java] ArrayList ์ •๋ ฌ, ArrayList → Array ๋ณ€ํ™˜ / ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด ๋ณธ๋ฌธ

Algorithm

[Java] ArrayList ์ •๋ ฌ, ArrayList → Array ๋ณ€ํ™˜ / ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด

O'mil 2024. 5. 10. 12:12
728x90

๐Ÿ”— ๋งํฌ

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช…

  • array์˜ ๊ฐ element ์ค‘ divisor๋กœ ๋‚˜๋ˆ„์–ด ๋œ์–ด์ง€๋Š” ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜
    divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” element๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด ๋ฐฐ์—ด์— -1์„ ๋‹ด์•„ ๋ฐ˜ํ™˜

๐Ÿ‘€ ์˜ˆ์ œ

โœ๏ธ ํ’€์ด ์ˆœ์„œ

  1. divisor๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆ˜ ์ฐพ์•„ ArrayList์— ๋„ฃ๊ธฐ
  2. ArrayList๊ฐ€ ๋น„์—ˆ๋‹ค๋ฉด -1 ์ถ”๊ฐ€
  3. ์ •๋ ฌ ํ›„ ๋ฐ˜ํ™˜

๐Ÿ’ป ์ฝ”๋“œ

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {

        List<Integer> answer = new ArrayList<>();
        for (int i: arr) {
            if (i % divisor == 0) {
                answer.add(i);
            }
        }
        
        if (answer.size() == 0) {
            answer.add(-1);
        }
        
        Collections.sort(answer);
        return answer.stream().mapToInt(Integer::intValue).toArray();
    }
}

๐Ÿ’ก๋ฐฐ์šด ์ 

1. ArrayList ์ •๋ ฌ

  • Collections.sort(๋ฆฌ์ŠคํŠธ) // ์˜ค๋ฆ„์ฐจ์ˆœ
  • Collections.sort(๋ฆฌ์ŠคํŠธ, Collections.reverseOrder()) // ๋‚ด๋ฆผ์ฐจ์ˆœ
  • Collections.sort(๋ฆฌ์ŠคํŠธ, String.CASE_INSENSITIVE_ORDER) //๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด ์˜ค๋ฆ„์ฐจ์ˆœ
  • Collections.sort(๋ฆฌ์ŠคํŠธ, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER))
    // ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด ๋‚ด๋ฆผ์ฐจ์ˆœ

2. ArrayList → Array ๋ณ€ํ™˜

  • toArray
List<Integer> list = new ArrayList<>();

Object[] arr = list.toArray();
  • Stream
List<Integer> list = new ArrayList<>();

int[] arr = list.stream()		//Stream<Integer> ๋ฐ˜ํ™˜
	.mapToInt(Integer::intValue)	//Integer์˜ intValue()๋ฅผ ์ฐธ์กฐํ•ด์„œ int๋กœ ์–ธ๋ฐ•์‹ฑ
    	.toArray();			//IntStream์˜ ์›์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜

 

 


๐Ÿ”’ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

import java.util.Arrays;

class Solution {
  public int[] solution(int[] arr, int divisor) {
          int[] answer = Arrays.stream(arr)
          .filter(factor -> factor % divisor == 0)	//๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ๋งŒ ํ•„ํ„ฐ๋ง
          .sorted()	// ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
          .toArray();	//๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
          
          if(answer.length == 0) answer = new int[] {-1};
          
          return answer;
  }
}

stream ๋งค๋ ฅ ์ฉ๋‹ค..

๊ทธ๋ ‡์ง€๋งŒ ๋‚˜์ค‘์— ๋‹ค์‹œ ํ’€๋ผ๊ณ  ํ•ด๋„ ์ด๋ ‡๊ฒŒ ํ’€ ์ž์‹ ์€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ๋„ ํ’€ ์ˆ˜ ์žˆ๊ตฌ๋‚˜. ํ•˜๊ณ  ๋„˜๊ธด๋‹ค..

 


๐Ÿ“šReference

[Java] ArrayList ์ •๋ ฌํ•˜๊ธฐ (์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ, ์‚ฌ์šฉ์ž ์ •์˜)

[Java] ArrayList ↔ Array ๋ณ€ํ™˜

728x90
Comments