개발자공부 #인터페이스 #인터페이스란? #인터페이스장점 #개발공부 #손가든의 #개발일지 2

[TIL][Krafton Jungle] 2주차 - (4) : 위상정렬 알고리즘

오늘은 DFS를 마치고 위상정렬에 대해 공부하기 시작했다. 위상 정렬 위상 정렬이란? 방향이 있는 그래프에서 방향을 거스르지 않고 모든 정점을 잇는 경로를 선형순서로 나열하는 것 이때 그래프는 사이클이 없는 방향 그래프(DAG)여야 한다. 이때 든 생각은, 알고리즘 문제에서 일단 사이클이 있는지를 판단하고 사이클이 있다면 위상 정렬을 하도록 하는 문제가 있을 거라 생각했다. 사이클이 있는지 판단하는 함수는 Kruskal에서의 노드의 부모를 고정하여 판단하는 방식이 사용될 것 같다. [정방향] 위상 정렬의 동작 예시(경로를 나열하기 위한 진행 순서)는 다음과 같다. 1. 진입차수가 0인 모든 노드를 큐에 삽입한다. 2. 큐에서 POP을 하고 POP한 노드에서 나가는 간선을 제거한다. 3. 제거한 후 진입차..

Jungle 2023.10.22

[JAVA] 인터페이스의 기본부터 응용까지 (1) - 인터페이스? 왜 사용하나요?

오늘 포스팅의 한줄 목표 - "달인이 되기 위해선 칼질부터 연습하라" 기본기를 충분히 다지기 위하여 프로그래밍의 중요한 요소 중 하나라고 생각되는 인터페이스에 대해 공부해 봅시다 ! 인터페이스, 너는 누구냐. 먼저 인터페이스를 만들기 위해 인터페이스가 무엇인지 ChatGPT에 물어봤습니다. 인터페이스가 무엇인지 정리해보자면, 인터페이스란, 클래스(인터페이스)와 클래스(인터페이스를 구현한 구현 클래스) 사이의 계약과 같으며, 인터페이스를 구현한 클래스는 인터페이스가 정의한 모든 메서드를 구현해야하는 계약조건을 가진다. (오호.. 너무나 당연한 소리;) 무엇인지는 감이 옵니다. 우린 이미 사실 알고 있었잖아요 그쵸? (몰랐다면 이 포스팅은 당신을 위한것) 그럼 인터페이스를 왜 사용하는지 또한 안 물어볼 수 ..

Java 2023.05.23