๋ฌธ์ ์ค๋ช
array์ ๊ฐ element ์ค divisor๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฐ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ฐฐ์ด์ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
divisor๋ก ๋๋์ด ๋จ์ด์ง๋ element๊ฐ ํ๋๋ ์๋ค๋ฉด ๋ฐฐ์ด์ -1์ ๋ด์ ๋ฐํํ์ธ์.
https://school.programmers.co.kr/learn/courses/30/lessons/12910
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
์ ํ ์ฌํญ
- 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] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
arr์ ์์ ์ค 5๋ก ๋๋์ด ๋จ์ด์ง๋ ์์๋ 5์ 10์ ๋๋ค. ๋ฐ๋ผ์ [5, 10]์ ๋ฆฌํดํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
arr์ ์์ ์ค 1๋ก ๋๋์ด ๋จ์ด์ง๋ ์์๋ 5์ 10์ ๋๋ค. ๋ฐ๋ผ์ [1, 2, 3, 36] ์ ๋ฆฌํดํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
3, 2, 6์ 10์ผ๋ก ๋๋์ด ๋จ์ด์ง์ง ์์ต๋๋ค. ๋๋์ด ๋จ์ด์ง๋ ์์๊ฐ ์์ผ๋ฏ๋ก [-1]์ ๋ฆฌํดํฉ๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
int count = 0;
for (int num : arr) {
if (num % divisor == 0) {
count ++;
}
}
int[] answer = new int[count];
int index = 0;
for (int num : arr) {
if (num % divisor == 0) {
answer[index++] = num;
}
}
if (answer.length == 0) {
return new int[]{-1};
}
Arrays.sort(answer);
return answer;
}
}
์ฝ๋ ์ค๋ช
- for (int num : arr) { } : ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ ๋ฐฐ์ด arr์์ ์์๋ฅผ ํ๋์ฉ ๊บผ๋ด์ ๋ณ์ num์ ์
๋ ฅ๋๋๋ก ๋ฐ๋ณตํ๋ค.
- if (num % divisor == 0) { count++ } : ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ ๋ณ์ num์ divisor๋ก ๋๋ด์ ๋ ๋๋์ด ๋จ์ด์ง๋ค๋ฉด count๊ฐ ํ๋์ฉ ์ฆ๊ฐํ๋ค.
- int[ ] answer = new int[count] : ๊ธธ์ด๊ฐ count์ธ ๋ฐฐ์ด answer๋ฅผ ์์ฑํ๋ค.
- for (int num : arr) { } : ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ ๋ฐฐ์ด arr์์ ์์๋ฅผ ํ๋์ฉ ๊บผ๋ด์ ๋ณ์ num์ ์
๋ ฅ๋๋๋ก ๋ฐ๋ณตํ๋ค.
- if (num % divisor == ) { } : ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ ๋ณ์ num์ด divisor๋ก ๋๋์ด ๋จ์ด์ง ๊ฒฝ์ฐ ์คํํ๋ค.
- answer[index++] = num : ๋ฐฐ์ด answer์ ์ธ๋ฑ์ค๋ฅผ ํ๋์ฉ ์ฆ๊ฐํ๋ฉด์ ๋ณ์ num์ ๊ฐ์ ๋ฃ๋๋ค.
- if (num % divisor == ) { } : ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ ๋ณ์ num์ด divisor๋ก ๋๋์ด ๋จ์ด์ง ๊ฒฝ์ฐ ์คํํ๋ค.
- if (answer.length == 0) { } : ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ ๋ฐฐ์ด answer์ ๊ธธ์ด๊ฐ 0์ผ ๊ฒฝ์ฐ ์คํํ๋ค.
- return new int[ ]{-1} : ๊ธธ์ด๊ฐ 1์ด๊ณ ๊ฐ์ด -1์ธ ๋ฐฐ์ด์ ์์ฑํ๊ณ ์ถ๋ ฅํ๋ค.
- Arrays.sort(answer) : ๋ฐฐ์ด answer๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
์ถ๊ฐ ์์ฑํ ์ฝ๋
import java.util.*; // java.util ํจํค์ง์ ๋ชจ๋ ํด๋์ค import
class Solution {
public ArrayList<Integer> solution(int[] arr, int divisor) {
ArrayList<Integer> answer = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
if (arr[i] % divisor == 0) {
answer.add(arr[i]);
}
}
if (answer.size() == 0) {
answer.add(-1);
}
Collections.sort(answer);
return answer;
}
}
์ฝ๋ ์ค๋ช
- import java.util.* : java.util ํจํค์ง์ ๋ชจ๋ ํด๋์ค๋ฅผ ๊ฐ์ ธ์จ๋ค.
- ArrayList<Integer> answer = new ArrayList< >( ) : ๊ธธ์ด๊ฐ ๋ณํ ์ ์๋๋ก ๋์ ๋ฆฌ์คํธ answer๋ฅผ ์์ฑํ๋ค.
- for (int i = 0; i < arr.length; i++) { } : ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ ๋ณ์ i๊ฐ 0๋ถํฐ arr.length - 1๊น์ง ๋ฐ๋ณตํ๋ค.
- if (arr[i] % divisor == 0) { } : ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ ๋ฐฐ์ด arr์ i๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ด divisor๋ก ๋๋์ด ๋จ์ด์ง ๊ฒฝ์ฐ ์คํํ๋ค.
- answer.add(arr[i]) : ๋ฐฐ์ด answer์ ๋ฐฐ์ด arr์ i๋ฒ์งธ ๊ฐ์ ์ถ๊ฐํ๋ค.
- if (arr[i] % divisor == 0) { } : ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ ๋ฐฐ์ด arr์ i๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ด divisor๋ก ๋๋์ด ๋จ์ด์ง ๊ฒฝ์ฐ ์คํํ๋ค.
- if (answer.size( ) == 0) : ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ ๋ฐฐ์ด answer์ ๊ธธ์ด๊ฐ 0์ผ ๊ฒฝ์ฐ ์คํํ๋ค.
- answer.add(-1) : ๋ฐฐ์ด answer์ -1 ๊ฐ์ ์ถ๊ฐํ๋ค.
- Collections.sort(answer) : ๋ฐฐ์ด answer๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
๋์ ๋ฆฌ์คํธ ArrayList
ํ๋ก๊ทธ๋จ ์คํ ์ค์ ํฌ๊ธฐ๋ฅผ ์์ ๋กญ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
Java์์ ๋์ ๋ฆฌ์คํธ๋ ArrayList ํด๋์ค๊ฐ ๋ํ์ ์ผ๋ก, ํ์ค ๋ฐฐ์ด๊ณผ ๋ฌ๋ฆฌ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ๋ ์๋์ผ๋ก ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋ค.
๋์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ๋ ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ์กฐ์ ๋๋ค.
- ์์ ์ถ๊ฐ, ์ญ์ , ๊ฒ์ ๋ฑ์ ์์ ์ ๋ ์ฝ๊ฒ ์ํํ ์ ์๋ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
- ์์์ ๊ฐ์๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์์ ๋ ๋์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ๋ ์ ์ฐํด์ง๋ค.
์ฃผ์ ํน์ง
- ์๋ ํฌ๊ธฐ ์กฐ์ : ArrayList์ ์ด๊ธฐ ํฌ๊ธฐ๋ ์๊ฒ ์์๋ ์ ์์ง๋ง, ํ์์ ๋ฐ๋ผ ์๋์ผ๋ก ์ปค์ง๋ค.
- ์ธ๋ฑ์ค ๊ธฐ๋ฐ ์ ๊ทผ : ๋ฐฐ์ด์ฒ๋ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์ ๊ทผํ ์ ์๋ค.
- ์ ๋ค๋ฆญ ์ฌ์ฉ : ์ ๋ค๋ฆญ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ํน์ ํ์ ์ ์์๋ง ์ ์ฅํ๋๋ก ์ ํํ ์ ์๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
ArrayList<String> list = new ArrayList<>(); // ๋์ ๋ฆฌ์คํธ ์์ฑ
list.add("Apple"); // ๋ฐฐ์ด์ ์์ ์ถ๊ฐ
String fruit = list.get(0); // ๋ฐฐ์ด ์์์ ์ ๊ทผ
list.remove(1); // ๋ฐฐ์ด ์์๋ฅผ ์ญ์
int size = list.size(); // ๋ฐฐ์ด ๊ธธ์ด ํ์ธ
boolean isEmpty = list.isEmpty(); // ๋ฐฐ์ด์ด ๋น์ด์๋์ง ํ์ธ
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ๐ต ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ (0) | 2024.11.13 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_์์ ๋ํ๊ธฐ (0) | 2024.11.12 |
ํ๋ก๊ทธ๋๋จธ์ค_์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ (2) | 2024.11.10 |
์ฝ๋ผ์ธ ์ถ์ธก (0) | 2024.11.09 |
๋ ์ ์ ์ฌ์ด์ ํฉ (1) | 2024.11.08 |