did_story
[ํ๋ก๊ทธ๋๋จธ์ค / JAVA] ๋๋๊ณผ ๋ง๋ ๊ทธ๋ํ. ๋ณธ๋ฌธ
Algorithm๐/ํ๋ก๊ทธ๋๋จธ์ค(Programmers)
[ํ๋ก๊ทธ๋๋จธ์ค / JAVA] ๋๋๊ณผ ๋ง๋ ๊ทธ๋ํ.
์ด์ ์์ 2025. 9. 30. 02:27๋ฌธ์ ์ค๋ช
๋๋ ๋ชจ์ ๊ทธ๋ํ, ๋ง๋ ๋ชจ์ ๊ทธ๋ํ, 8์ ๋ชจ์ ๊ทธ๋ํ๊ฐ ์ฌ๋ฌ ๊ฐ ์์ต๋๋ค. ์ด ๊ทธ๋ํ๋ค๊ณผ ๋ฌด๊ดํ ์ ์ ์ ํ๋ ์์ฑํ ๋ค, ๊ฐ ๋๋ ๋ชจ์ ๊ทธ๋ํ, ๋ง๋ ๋ชจ์ ๊ทธ๋ํ, 8์ ๋ชจ์ ๊ทธ๋ํ์ ์์์ ์ ์ ํ๋๋ก ํฅํ๋ ๊ฐ์ ๋ค์ ์ฐ๊ฒฐํ์ต๋๋ค. ๊ทธ ํ ๊ฐ ์ ์ ์ ์๋ก ๋ค๋ฅธ ๋ฒํธ๋ฅผ ๋งค๊ฒผ์ต๋๋ค. ์ด๋ ๋น์ ์ ๊ทธ๋ํ์ ๊ฐ์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ฉด ์์ฑํ ์ ์ ์ ๋ฒํธ์ ์ ์ ์ ์์ฑํ๊ธฐ ์ ๋๋ ๋ชจ์ ๊ทธ๋ํ์ ์, ๋ง๋ ๋ชจ์ ๊ทธ๋ํ์ ์, 8์ ๋ชจ์ ๊ทธ๋ํ์ ์๋ฅผ ๊ตฌํด์ผ ํฉ๋๋ค.
๊ทธ๋ํ์ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ด์ 2์ฐจ์ ์ ์ ๋ฐฐ์ด edges๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋, ์์ฑํ ์ ์ ์ ๋ฒํธ, ๋๋ ๋ชจ์ ๊ทธ๋ํ์ ์, ๋ง๋ ๋ชจ์ ๊ทธ๋ํ์ ์, 8์ ๋ชจ์ ๊ทธ๋ํ์ ์๋ฅผ ์์๋๋ก 1์ฐจ์ ์ ์ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋ฌธ์ ํ์ด
ํด๋น ๋ชจ์๋ง๋ค, ๊ฐ์ ์ in ๊ฐฏ์์, out์ ๊ฐฏ์๊ฐ ๋ค๋ฅธ ๊ฒ์ ํ์ธ ํ ์์์๋ค.
1. ๋๋ ๋ชจ์์ธ ๊ฒฝ์ฐ input๊ณผ output์ด 1๊ฐ์ฉ ์๋ ๊ฒ์ผ๋ก ํ์ธ
2. ๋ง๋ ๋ชจ์์ธ ๊ฒฝ์ฐ input๊ณผ output์ด 1๊ฐ์ฉ ์๋ ๊ฒ์ผ๋ก ํ์ธ => ๋ง์ง๋ง node ๊ฒฝ์ฐ input์ด ์์ง๋ง output์ด ์๋ ๊ฒ์ ์ ์ ์๋ค.
3. 8์ ๋ชจ์์ธ ๊ฒฝ์ฐ input๊ณผ output์ด 2, 2๊ฐ ์ฉ ์๋ node๋ฅผ ํ์ธ,
๋ฐ๋ผ์ 2๋ฒ๊ณผ 3๋ฒ์ ๊ตฌํ๋ฉด, ์ด ์ ์ ์์ ๋๊ฐ ๊ฐ์ ์ ๊ฐฏ์์์ ํด๋น ๋ฒํธ์ ์ฐจ๋ฅผ ํตํด 1๋ฒ์ ๊ตฌํ ์ ์๋ค.
์ฝ๋
import java.util.HashMap;
class Solution {
public int[] solution(int[][] edges) {
int[] answer = new int[4];
HashMap<Integer, Integer> out = new HashMap<>();
HashMap<Integer, Integer> in = new HashMap<>();
for (int[] edge : edges) {
out.put(edge[0], out.getOrDefault(edge[0], 0) + 1);
in.put(edge[1], in.getOrDefault(edge[1], 0) + 1);
}
for (int key : out.keySet()){
if (out.get(key) > 1){
if (!in.containsKey(key)) answer[0] = key;
else answer[3]++;
}
}
for (int key : in.keySet()) if (!out.containsKey(key)) answer[2]++;
answer[1] = out.get(answer[0]) - answer[2] - answer[3];
return answer;
}
}
๊นจ๋ฌ์ ์
์ฒ์์ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ output์ key๋ก input์ด ์๋ ๊ฒ์ผ๋ก ๋ง๋ ๋ชจ์์ ์ฐพ์๋ ค๋ค๊ฐ, ํ๋ ธ๋ค ๋ผ๋ ๋ต๋ณ์ ๋ฐ๊ณ ๋ค์ ์๊ฐํด๋ณด๋ ๊ฒฝํ์ ํ๋ค. ํ๋ ธ์ ๋, ๋์ ์ฝ๋์ ์ด์ ๋ฅผ ์ฐพ์๊ฐ๋ฉฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๋ฉด ์ข์ ๊ฒฐ๊ณผ๋ก ์ด์ด์ง๋ค๋ ์๊ฐ์ ๋ค์ ๋ฐ๋๋ค. ๋ ํ๋ HashMap์์ ์ง์ํ๋ method ๊น๋จน์ ๋ง์ put์ push๋ก ๊ธฐ์ตํ๋๊ฐ ๋ฑ๋ฑ
'Algorithm๐ > ํ๋ก๊ทธ๋๋จธ์ค(Programmers)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค / JAVA] ์ด๋ชจํฐ์ฝ ํ ์ธํ์ฌ. (0) | 2025.10.12 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค / JAVA] ํ ํธ์ง (0) | 2025.10.09 |
| [ํ๋ก๊ทธ๋๋จธ์ค / Java] ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ (0) | 2025.09.29 |
| [ํ๋ก๊ทธ๋๋จธ์ค / ์๋ฐ] ๊ณต์์ฐ์ฑ (0) | 2025.09.12 |
| [ํ๋ก๊ทธ๋๋จธ์ค / JAVA] JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ (3) | 2025.07.10 |