목록전체 글 (431)
mojo's Blog

문제 링크 => 11266번: 단절점 (acmicpc.net) 11266번: 단절점 첫째 줄에 두 정수 V(1≤V≤10,000), E(1≤E≤100,000)가 주어진다. 이는 그래프가 V개의 정점과 E개의 간선으로 이루어져 있다는 의미이다. 다음 E개의 줄에는 간선에 대한 정보를 나타내는 두 정수 A, B www.acmicpc.net DFS 트리를 이용하여 단절점을 찾아내는 문제이다. Tarjan's Algorithm 을 이용하여 노드별로 dfs로 방문하면서 매겨지는 dfn값과 해당 노드에서 최소 dfn 값 (low)을 찾는 과정 속에서 단절점을 찾아내는 방법은 다음과 같다. case 1. 자식노드가 dfn 값이 매겨지지 않은 경우 : dfn[cur] 2 : low[2] = dfn[2] = 2 (2) 2..

2번 실습 문제 code import javax.swing.*; // JFrame import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; // Container import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener..

아바타와 괴물 게임 만들기 code import javax.swing.*; // JFrame import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; // Container import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyLi..

wait(), notify(), notifyAll()를 이용하면 producer-consumer 문제의 스레드 동기화를 해결할 수 있다. java.lang.Object 클래스는 스레드 사이에 동기화를 위한 3개의 메소드 wait(), notify(), notifyAll() 를 제공한다. 모든 객체는 Object 클래스를 상속받기 때문에, 자바는 모든 객체가 동기화 객체가 될 수 있도록 설계하였다. wait() : 다른 스레드가 이 객체의 notify()를 불러줄 때까지 대기한다. notify() : 이 객체에 대기 중인 스레드를 깨워 RUNNABLE 상태로 만든다. 2개 이상의 스레드가 대기 중이라도 오직 한 개의 스레드만 깨워 RUNNABLE 상태로 한다. notifyAll() : 이 객체에 대기 중인..

Synchronized를 사용하여 잘 동작하는 직계판을 응용하는 code import javax.swing.*; // JFrame import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; // Container import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import..

main 스레드 정보 출력 code public class ThreadMainEx { public static void main(String[] args) { long id = Thread.currentThread().getId(); String name = Thread.currentThread().getName(); int priority = Thread.currentThread().getPriority(); Thread.State s = Thread.currentThread().getState(); System.out.println("현재 스레드 이름 = "+name); System.out.println("현재 스레드 ID = "+id); System.out.println("현재 스레드 우선순위 값 ..