문제 백준 18405번 경쟁적 전염 풀이 바이러스의 위치와 번호를 저장하기 위한 Virus 클래스를 정의합니다. 이때 바이러스 번호를 오름차순으로 정렬하기 위해 Comparable 인터페이스를 사용합니다. 주어진 시험관의 정보를 입력받습니다. 바이러스가 있을 경우 해당 바이러스의 ...
[BOJ] 14391번 종이 조각 (Java/DFS)
문제 백준 14391번 종이 조각 풀이 DFS를 통해 check 배열에 가로, 세로를 표시합니다. 가로로 이어지는 숫자는 true, 세로로 이어지는 숫자는 false 입니다. check 배열을 전부 탐색하면 getSum 함수를 호출해 각 경우의 합의 구합니다. 최대 합과 비교하여 값을 갱신합니다. 소스 코드 import ...
[Java] Garbage Collection
Garbage Collection Garbage Collection(GC)은 JVM 상에서 더 이상 사용되지 않는 데이터가 할당되어 있는 메모리를 해제시켜주는 장치입니다. 또한 자동으로 동작하기 때문에 개발자가 메모리 관리를 할 필요가 없습니다. 주로 관리하는 대상은 Heap 영역 내의 객체 중에서 참조되지 않은 데이터입니다. 참조되어 있는지에 대...
[BOJ] 17141번 연구소 2 (Java/Combination/BFS)
문제 백준 17141번 연구소 2 풀이 comb 함수를 이용해 초기에 바이러스를 놓을 칸을 선택합니다. copy_map에서 벽은 -1, 초기에 바이러스를 위치시킨 곳은 -10으로 지정합니다. BFS 함수로 바이러스가 퍼지는데 걸리는 시간을 계산하여 copy_map에 저장합니다. 빈 칸이 있는지 확인하고, 없으면 최소 시간을 계...
[BOJ] 17298번 오큰수 (Java/Stack)
문제 백준 17298번 오큰수 풀이1 해당하는 인덱스에 오큰수를 출력하기 위해 인덱스와 숫자값을 가지는 Element 클래스를 이용합니다. 오큰수가 없을 경우 -1을 출력해야 하므로, 오큰수를 저장하는 res 배열의 원소를 전부 -1로 초기화합니다. 스택의 top보다 현재 입력받는 수가 크면, 현재 수는 스택의 top의 오큰수입니...
[Java] JVM, JRE, JDK
운영체제에 독립적 JVM(Java Virtual Machine) Java로 작성된 프로그램이 돌아가도록 만들어주는 것 자바 소스코드로 만들어지는 .class 파일을 실행할 수 있음 자바 바이트 코드를 실행하는 가상 환경 운영체제가 달라져도 자바 코드가 동일하게 작동할 수 있도록 환경을 제공함 WORA(Write one Run A...
[OS] Process와 Thread
용어 정리 프로세서(Processor) 하드웨어적 측면: 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛, 중앙처리장치(CPU) 등 소프트웨어적 측면: 데이터 포맷을 변환하는 역할을 수행하는 데이터 처리 시스템, 워드프로세서, 컴파일러 등 프로세스(Process) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램, 작업의 목록...
[Java] Java란..?
Java 프로그래밍 언어 중 하나로 컴퓨터 프로그램, 웹/모바일 애플리케이션 등을 만드는 데 사용됨 전 세계적으로 가장 많이 사용되는 언어 중 하나로 2022년 6월 기준 Python, C에 이어 3위를 차지함 https://www.tiobe.com/tiobe-index/ 자바 언어를 사용하는 이유 객체 지향적 언어로 유...
[OS] 운영체제란..?
운영체제(Operating System) 운영체제는 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록, 하드웨어 자원을 관리하고 환경을 제공하는 시스템 소프트웨어를 말합니다. 대표적인 운영체제로는 MS-DOS, Windows, Linux, Unix, Mac OS, iOS 등이 있습니다. 운영체제의 목적 처리능력(Throughput)...
[Sort] Tim Sort(Insert Sort + Merge Sort)
Tim Sort 등장배경 $C × nlogn + α$ 정렬들에 참조 지역성 원리를 적용하면 힙 정렬은 한 위치에 있는 요소를 해당 요소의 인덱스 두 배 또는 절반인 요소와 반복적으로 비교하기에 $C$값이 크므로 참조 지역성이 좋지 않다. 병합 정렬은 참조 지역성 원리는 어느 정도 만족하나, 추가 메모리가 필요하다는 단점이 있다. 퀵 소...