본문 바로가기

Java2

[Java] SingleThread, MultiThread[ run()을 바로 호출할 때 start() 대신] Thread Thread의 정의는 한 프로그램 내에서 작업의 주체 단위를 의미합니다. 1:N관계를 가질 수 있기 때문에, 한 프로그램 내에서 여러 thread를 소유할 수 있습니다. start(), run() 생각해 보면, Thread를 만들고, start(), run() 메서드의 차이점을 모르고 Thread를 사용하는 건 말이 안 되기 때문에 주제는 start() 메서드와 run() 메서드는 어떻게 실행되며, 왜 둘의 차이가 발생하는지 작성합니다. 위 사진은 Runnable 인터페이스 입니다. 스레드 프로그래밍을 하기 위해서 Thread 클래스를 상속받거나, Runnable 인터페이스를 구현한다는 것은 알고 있습니다. 하지만 어떤 Article에서는 이것을 이렇게 설명합니다. 1. Thread 클래스를.. 2024. 3. 13.
[백준] 회문 (골드5, 시간복잡도는 왜 선형을 유지할 수 있을까.. N^2이 아니고?) https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 설명 회문(palindrome)은 앞 뒤 문자가 같아, 앞으로 읽어도 뒤로 읽어도 같은 문자가 되는 문자열을 의미한다. 우선 회문의 개념은 알았으니 문제를 좀 살펴보면, O(N^2) 풀이로는 도저히 풀 수 없을 것 같다는 걸 문자열의 범위만을 봐도 알 수 있다. 문자열의 길이는 최대 10만 까지 주어지므로, T개의 케이스를 모두 연산해야 하기 때문에 O(T * N^2) 만큼의 시간이 소요되게 알고리즘을 작성하면 시간초과가 난다.. 2024. 2. 8.