โค๏ธ Problem
- ๋ฌธ์
์ธ๊ณผ์์ฌ ๋จธ์ฑ์ด๋ ์๊ธ์ค์ ์จ ํ์์ ์๊ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ง๋ฃ ์์๋ฅผ ์ ํ๋ ค๊ณ ํฉ๋๋ค. ์ ์ ๋ฐฐ์ด emergency๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์๊ธ๋๊ฐ ๋์ ์์๋๋ก ์ง๋ฃ ์์๋ฅผ ์ ํ ๋ฐฐ์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ์ ํ ์ฌํญ
- ์ค๋ณต๋ ์์๋ ์์ต๋๋ค.
- 1 ≤ emergency์ ๊ธธ์ด ≤ 10
- 1 ≤ emergency์ ์์ ≤ 100
- ์ ์ถ๋ ฅ ์ & ์ค๋ช
no | emergency | result |
1 | [3, 76, 24] | [3, 1, 2] |
2 | [1, 2, 3, 4, 5, 6, 7] | [7, 6, 5, 4, 3, 2, 1] |
3 | [30, 10, 23, 6, 100] | [2, 4, 3, 5, 1] |
- emergency๊ฐ [3, 76, 24]์ด๋ฏ๋ก ์๊ธ๋์ ํฌ๊ธฐ ์์๋๋ก ๋ฒํธ๋ฅผ ๋งค๊ธด [3, 1, 2]๋ฅผ returnํฉ๋๋ค.
- emergency๊ฐ [1, 2, 3, 4, 5, 6, 7]์ด๋ฏ๋ก ์๊ธ๋์ ํฌ๊ธฐ ์์๋๋ก ๋ฒํธ๋ฅผ ๋งค๊ธด [7, 6, 5, 4, 3, 2, 1]๋ฅผ returnํฉ๋๋ค.
- emergency๊ฐ [30, 10, 23, 6, 100]์ด๋ฏ๋ก ์๊ธ๋์ ํฌ๊ธฐ ์์๋๋ก ๋ฒํธ๋ฅผ ๋งค๊ธด [2, 4, 3, 5, 1]๋ฅผ returnํฉ๋๋ค.
๐ Solution
ํ์ด
import java.util.Arrays;
import java.util.HashMap;
class Solution {
public int[] solution(int[] emergency) {
//๊น์ ๋ณต์ฌ ๋ฐฉ๋ฒ ์ฌ์ฉ
int[] copyArr = emergency.clone();
Arrays.sort(copyArr);
//์ ๋ ฌ์์๋๋ก ์๊ธ๋ ์ญ์ ๋ถ์ฌ + Map์ ์ ์ฅ
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(){{
int rank = copyArr.length;
for (int i=0; i<copyArr.length; i++) {
put(copyArr[i], rank);
rank--;
}
}};
//๋ฐฐ์ด ๊ฐ์ ์๊ธ๋๋ก ๋ฐ๊พผ ๋ค ๋ฐฐ์ด ๋ฆฌํด
for (int i=0; i<emergency.length; i++) {
emergency[i] = map.get(Integer.valueOf(emergency[i]));
}
return emergency;
}
}
์ฒ๋ฆฌ์๋์ ๋ํ ๋ณด์์ด ํ์ํด ๋ณด์ธ๋ค
๐ Comment
์ฒ์์ copyArr[]์ emergency[]์ ๊ฐ์ ๋ณต์ฌํ๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์๊พธ emergency[]์ด copyarr[]์ ๊ฐ์ ์ ๋ ฌ์ ๊ฐ์ง๋ ํ์์ด ๋ฐ์ํ๋ค.
int[] copyArr = emergency;
Arrays.sort(copyArr);
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(){{
int rank = copyArr.length;
for (int i=0; i<copyArr.length; i++) {
put(copyArr[i], rank);
rank--;
}
}};
for (int i=0; i<emergency.length; i++) {
emergency[i] = map.get(Integer.valueOf(emergency[i]));
System.out.println(emergency[i]);
}
๋ฌธ์ ์ ์์ธ์ "int[] copyArr = emergency;" ๋๋ฌธ์ด์๋ค. ํด๋น ์ฝ๋๋ ๋ฐฐ์ด์ ๋ณต์ฌ ์ค์์ ์์ ๋ณต์ฌ์ ํด๋นํ๊ธฐ ๋๋ฌธ์ ๋จ์ํ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๋ณต์ฌํ๊ฒ ๋๋ค.
์ฆ, copyArr[]์ emergency[]๊ฐ ๊ฐ์ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ๋ ์ค ํ๋์ ๋ฐฐ์ด ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ๋ฐฐ์ด์ ๊ฐ๊น์ง ๋ณ๊ฒฝ๋๋ ํจ๊ณผ๋ฅผ ๋ถ๋ฌ์ค๊ฒ ๋ ๊ฒ์ด๋ค. ์ด์ฉ์ง ์๊พธ ์ ๋ ฌ๋ ๊ฐ์ผ๋ก ๋์ค๋๋ผ..๐ฅ
ํด๋น ๋ฌธ์ ๋ ๊น์ ๋ณต์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์๋ค.
๐ค Concept
๋ฐฐ์ด ๋ณต์ฌ ๋ฐฉ๋ฒ
- ์์ ๋ณต์ฌ: ๋ฐฐ์ด์ ์ฃผ์๊ฐ์ ๋ณต์ฌ
== ๋ณต์ฌ๋ ๋ฐฐ์ด๊ณผ ์๋ณธ ๋ฐฐ์ด์ ์๋ก ์ํฅ์ ๋ฏธ์น๋ค
- ๊น์ ๋ณต์ฌ: ๋ฐฐ์ด์ ๊ฐ์ ์๋ก์ด ๋ฐฐ์ด์ ๊ฐ์ผ๋ก ๋ณต์ฌ
== ๋ณต์ฌ๋ ๋ฐฐ์ด๊ณผ ์๋ณธ ๋ฐฐ์ด์ ์๋ก ์ํฅ์ ์ฃผ๊ณ ๋ฐ์ง ์๋๋ค- ๋ฐฐ์ด๋ช .clone();
- Arrays.copyOf(์๋ณธ ๋ฐฐ์ด๋ช , ๋ณต์ฌํ ๊ธธ์ด);
- Arrays.copyOfRange(์๋ณธ ๋ฐฐ์ด๋ช , ์์์ธ๋ฑ์ค, ๋ณต์ฌํ ๊ธธ์ด);
'Programmers lv-0' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ๊น์ด ์ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
---|---|
์ค๋ณต๋ ๋ฌธ์ ์ ๊ฑฐ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
์ปจํธ๋กค ์ ํธ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
์์ธ์๋ถํด - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
์จ์ด์๋ ์ซ์์ ๋ง์ (1) - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
๊ตฌ์ฌ์ ๋๋๋ ๊ฒฝ์ฐ์ ์ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
๋๊ธ