목록분류 전체보기 (431)
mojo's Blog

Thread를 상속받아서 1초 단위로 출력하는 타이머 스레드 만들기 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 ja..
Multitasking Multitasking = multi + tasking 의 합성어로 다수의 작업을 동시에 처리하는 것을 말한다. 간단한 응용프로그램은 보통 하나의 작업(task)만 하는 경우가 대부분이지만, 큰 규모의 응용프로그램은 많은 경우 여러 작업(task)를 동시에 실행한다. 멀티태스크(Multitask) 응용프로그램을 작성하기 위한 스레드(thread) 개념을 알아보도록 한다. thread란 thread of control의 준말로서 프로그램 코드를 실행하는 하나의 실 혹은 제어의 개념이다. 하나의 실로 하나의 바느질밖에 할 수 없듯이, 하나의 스레드로 하나의 작업밖에 처리할 수 없다. 구체적으로 스레드는 운영체제, JVM에서 작업(task)를 실행하는 단위로서, 운영체제나 JVM에 의해..

문제 링크 => 1519번: 부분 문자열 뽑기 게임 (acmicpc.net) 1519번: 부분 문자열 뽑기 게임 첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 다이나믹 프로그래밍 + 게임 이론 문제이다. 게임 이론이라는걸 이번에 처음 알게 되었다. 플레이어 1이 무조건 지게되는(필패) 경우를 찾고 dp 값을 업데이트 하는것을 기반으로 이 문제를 접근해 보려고 한다. 처음으로 N 값이 10 미만인 경우에 대해 살펴보면 이 경우는 필패이다. => 문제의 조건에서 "진 부분 문자열이란 자기 자신을 제외한 모든 연속된 부분 문자열을 말한다." 라고 명시되어 있으므로 10 미만의 숫자는 부분 문자열이 존재하지 않으므로 고를 수 없다. 따라서 dp[ 1~..

문제 링크 => 13283번: Daruma Otoshi (acmicpc.net) 13283번: Daruma Otoshi For each dataset, output in a line the maximum number of blocks you can remove. www.acmicpc.net 다이나믹 프로그래밍 문제이다. 약간 이 문제 => 11049번: 행렬 곱셈 순서 (acmicpc.net) 랑 비슷한 느낌인데 재귀로 풀니 계속해서 시간초과를 받았습니다. (왜 그런지는 의문...? ㅠㅠ) 그래서 3중 for문으로 해결하였습니다. 일단, dp[x][y] 를 [x, y] 범위 내에서 제거할 수 있는 블럭의 수라고 하겠습니다. 풀이는 다음과 같습니다. 1. [0, 1], [1, 2], ... , [N-2, ..

문제 링크 => 22358번: 스키장 (acmicpc.net) 22358번: 스키장 첫 번째 줄에 다섯 개의 정수 $N, M, K, S, T$ ($1 \le N, M \le 10^5$, $0 \le K \le 10$, $1 \le S, T \le N$) 가 주어진다. 이후 $M$ 개의 줄에 각 코스의 정보가 세 개의 정수 $a_i, b_i, t_i$ ($1 \le a_i DAG 이다. 리프트를 타지 않는 경우(K = 0) 와 리프트를 한번 이상 타는 경우(K >= 1) 로 나눠서 해결할 수 있다. 2차원 배열 dp[x][y] 를..

문제 링크 => 1655번: 가운데를 말해요 (acmicpc.net) 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 최소힙, 최대힙을 이용하는 문제이다. 우선순위 큐를 이용하여 maxHeap, minHeap를 만들고 최소힙, 최대힙의 합한 갯수, 즉, 받아온 데이터의 갯수가 홀수일때와 짝수일때를 고려해줘야 한다. 데이터의 갯수(2n+1)가 홀수일 때 => 최대힙의 갯수 n+1 개, 최소힙의 갯수 n 개에 대하여 최대힙의 최댓값, 최소힙의 최솟값을 비교하여 더 작은 결과가 중간값이다. 데이터의..