자바 17

[Lv_2] 도넛과 막대 그래프

from collections import defaultdict def solution(edges): answer = [0, 0, 0, 0] graph = defaultdict(lambda: [0, 0]) for s, e in edges: graph[s][1] += 1 graph[e][0] += 1 for items in graph.items(): node, num = items if num[0] == 0 and num[1] >= 2: answer[0] = node elif num[0] >= 2 and num[1] >= 2: answer[3] += 1 elif num[0] > 0 and num[1] == 0: answer[2] += 1 # 시작정점에서 뻗어나간 간선의 개수 = 총 그래프 개수 donut ..

알고리즘 2024.01.24

[Lv_3] 하노이 탑

🔍 아이디어 ✅ 각 층별로 옮기기 위한 점화식을 재귀코드로 표현 import java.util.*; class Solution { List moved = new ArrayList(); public List solution(int n) { hanoi(n, 1, 2, 3); return moved; } void hanoi(int count, int start, int sub, int end) { if (count == 1) { moved.add(new int[] { start, end }); return; } hanoi(count - 1, start, end, sub); moved.add(new int[] { start, end }); hanoi(count - 1, sub, start, end); } } ✔..

알고리즘 2023.11.13

[Lv_2] 주차요금계산

🔍 아이디어 ✅ Car 클래스를 생성해 값을 관리했다. import java.util.*; class Solution { public int[] solution(int[] fees, String[] records) { int[] answer = {}; Map carMap = new HashMap(); for (int i = 0; i < records.length; i++) { String[] record = records[i].split(" "); String time = record[0]; String name = record[1]; String type = record[2]; // Key가 없으면 값을 생성해서 값을 항상 얻을 수 있도록 보장 if (!carMap.containsKey(name)) {..

알고리즘 2023.11.12