🔗 Is Graph Bipartite? 문제 설명n개의 노드로 이루어진 무방향 그래프가 있습니다. 각 노드는 0부터 n - 1까지 번호가 매겨져 있습니다.이 그래프는 2차원 배열 graph로 주어지며, graph[u]는 노드 u와 인접한 노드들의 배열입니다.graph[u]에 있는 각 노드 v에 대해, 노드 u와 노드 v 사이에 무방향 간선이 존재합니다. 그래프는 다음과 같은 특성을 가집니다:자기 자신과 연결된 간선(self-edge) 은 없습니다. (graph[u]에는 u가 포함되지 않습니다.)중복 간선은 없습니다. (graph[u]에는 중복된 값이 없습니다.)만약 v가 graph[u]에 있다면, u도 graph[v]에 반드시 포함되어 있습니다. (즉, 무방향 그래프입니다.)그래프는 연결되어 있지 않을..
VO (Value Object)불변(immutable)객체값을 표현하기 위해 사용함비즈니스 로직에서 의미 있는 “값”equals(), hashCode()를 값 자체로 동일성 판단 🔹 특징불변성 보장 : 필드는 final, 생성자에서만 초기화의미 있는 도메인 값객체의 주소가 아닌 “값”이 같으면 같다고 판단public final class Money { private final int amount; private final String currency; public Money(int amount, String currency) { this.amount = amount; this.currency = currency; } public int getAmoun..
import java.io.Serializable;public interface Serializable {}내용이 없는 “마커 인터페이스”객체를 바이트 형태로 변환(직렬화)할 수 있게 해주는 마커 인터페이스해당 인터페이스를 구현하면, Java는 이 객체가 직렬화 가능하다고 판단객체를 `ObjectOutputStream`, `ObjectInputStream` 등을 통해 직렬화/역직렬화 가능네트워크 전송(HTTP API 호출 시), 파일에 객체 저장, 분산 시스템(메시지 큐, 세션 저장 등) 에 사용됨 직렬화(Serialization)객체를 저장하거나 전송할 수 있도록 byte 형태로 변환하는 과정객체의 상태(필드 값 등)를 파일로 저장하거나 네트워크를 통해 전송할 수 있게 만드는 기술 사용 예시1️⃣ 클래..
import java.util.stream;public interface Stream extends BaseStream>{ Stream filter(Predicate predicate) Stream map(Function mapper); Stream sorted(); Stream sorted(Comparator comparator); Stream distinct(); Stream limit(long maxSize); Stream skip(long n); R collect(Collector collector); R collect(Supplier supplier,BiConsumer accumulator,BiConsumer combiner); void forEach(Consumer action); lon..
@FunctionalInterfacepublic interface Predicate{ boolean test(T t); // 반드시 구현해야하는 추상 메서드 default Predicate and(Predicate other); // 논리 AND default Predicate negate(); // 논리 OR default Predicate or(Predicate other); // 논리 NOT static Predicate isEqual(Object targetRef); // 정적 비교 생성기}Java 8에 도입된 함수형 인터페이스(Function Interface) 중 하나boolea..
🔗 메뉴 리뉴얼import java.util.*;class Solution { private static HashMap> courseMap; public String[] solution(String[] orders, int[] course) { // 코스메뉴 : 최소 단품 메뉴 2 가지 // 최소 2명 이상의 손님으로부터 주문된 단품메뉴 조합 // orders : 손님들이 주문한 단품메뉴 // course : 코스를 구성하는 단품 메뉴 개수 // 해시맵 초기화 courseMap = new HashMap(); for(int i:course){ courseMap.put(i,new HashM..