본문 바로가기

Java33

[Java Study] Thread와 Process 자바의 멀티스레딩에 대해서 공부하면서 포스팅을 시작해보려 합니다. 하지만 그전에 스레드와 프로세스에 대해서 다시한번 상기하고자 합니다.프로세스(Process)작업관리자를 확인해보면 현재 실행 중인 애플리케이션 혹은 프로그램들의 목록을 볼 수 있습니다.이처럼 프로세스는 실행 중인 프로그램을 의미합니다. 우리가 어떤 애플리케이션(ex: 크롬, IntelliJ 등)을 실행하면 운영체제는 해당 애플리케이션에 메모리 공간과 시스템 자원을 할당하여 하나의 독립된 프로세스를 생성합니다.특징독립된 메모리 공간(코드, 데이터, 스택 등)을 가집니다.다른 프로세스와 메모리를 공유하지 않습니다.하나의 프로세스가 종료되면 그 안에 있는 모든 자원도 함께 해제됩니다.스레드(Thread)스레드는 프로세스 내에서 실제로 작업을 수.. 2025. 5. 23.
[JAVA] DNA 비밀번호 - 백준 12891번 https://www.acmicpc.net/problem/12891 내 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { private static boolean check_map(Map map){ for(char key : map.keySet()){ if(map.get(key) > 0){ return false; } } return true; } public static void main(String[].. 2025. 5. 22.
[JAVA] 좋다 - 백준 1254번 https://www.acmicpc.net/problem/1253 내 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(input.readLine()); StringTokenizer st = ne.. 2025. 5. 22.
[JAVA] 압축 [문제] 신입사원 어피치는 카카오톡으로 전송되는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었다. 메시지를 압축하더라도 전달되는 정보가 바뀌어서는 안 되므로, 압축 전의 정보를 완벽하게 복원 가능한 무손실 압축 알고리즘을 구현하기로 했다. 어피치는 여러 압축 알고리즘 중에서 성능이 좋고 구현이 간단한 LZW(Lempel–Ziv–Welch) 압축을 구현하기로 했다. LZW 압축은 1983년 발표된 알고리즘으로, 이미지 파일 포맷인 GIF 등 다양한 응용에서 사용되었다. LZW 압축은 다음 과정을 거친다. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. 사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. w에 해당하는 사전의 색인 번호를 출력하고, 입력에서 w를 제거한다. 입력에서 .. 2023. 3. 1.
[JAVA] k진수에서 소수 개수 구하기 [문제] 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다. 예를 들어, 101은 P가 될 수 없습니다. 예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 11을 k진법으로 보았을 때가 아닌, 10진법.. 2023. 3. 1.
[JAVA] 타겟 넘버 [문제] n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞.. 2023. 3. 1.