728x90

전체 글 260

[백준 17406 - Java] 배열 돌리기 4

https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 문제 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 값은 4이다. 1 2 3 2 1 1 4 5 6 배열은 회전 연산을 수행할 수 있다. 회전 연산은 세 정수 (r, c, s)로 이루어져 있고, 가장 ..

[백준 12886 - Java] 돌 그룹

https://www.acmicpc.net/problem/12886 12886번: 돌 그룹 오늘 강호는 돌을 이용해 재미있는 게임을 하려고 한다. 먼저, 돌은 세 개의 그룹으로 나누어져 있으며 각각의 그룹에는 돌이 A, B, C개가 있다. 강호는 모든 그룹에 있는 돌의 개수를 같게 만들려 www.acmicpc.net 문제 오늘 강호는 돌을 이용해 재미있는 게임을 하려고 한다. 먼저, 돌은 세 개의 그룹으로 나누어져 있으며 각각의 그룹에는 돌이 A, B, C개가 있다. 강호는 모든 그룹에 있는 돌의 개수를 같게 만들려고 한다. 강호는 돌을 단계별로 움직이며, 각 단계는 다음과 같이 이루어져 있다. 크기가 같지 않은 두 그룹을 고른다. 그 다음, 돌의 개수가 작은 쪽을 X, 큰 쪽을 Y라고 정한다. 그 다음..

[Java] 자바 가상 머신 JVM(Java Virtual Machine)

자바 가상 머신 (JVM) 자바 가상 머신은 자바 애플리케이션을 클래스 로더를 통해 읽어들여 자바 API와 함께 실행해줍니다. 또한 자바와 OS 사이에서 자바가 OS에 관계없이 실행될 수 있도록 하는 역할을 해줍니다. 이 덕분에 윈도우에서 구현한 자바 프로그램이 mac에서도 동작하게 될 수 있는 겁니다. JVM의 역할 자바 애플리케이션을 클래스 로더를 통해 읽어 자바 API와 함께 실행해 주는 역할을 합니다. 자바와 OS 사이에서 OS에 독립적으로 자바 프로그램이 실행 될 수 있도록 해줍니다. 또한 가비지 컬렉션 같은 기능을 통해서 프로그램의 메모리 관리를 알아서 해주기도 합니다. 사실 저는 이걸 보고도 음.. 그래서 뭘 어떻게 해서 OS에 관계없이 자바 프로그램이 실행되게 해주는거지? 하는 의문이 계속..

Java/Java 기타 2021.11.11

[운영체제] 싱글 스레드와 멀티 스레드

싱글 스레드 하나의 프로세스 내에서 하나의 스레드만 실행되는 것을 말합니다. 그렇기 때문에 하나의 PC레지스터와 하나의 스택을 가지고 있습니다. 멀티 스레드 하나의 프로세스 내에 여러 스레드를 구성해서 각각의 스레드가 하나의 작업을 처리하는 것을 말합니다. 각각의 스레드는 PC 레지스터와 스택을 따로 가지고 있으며, 쓰레드 간에 데이터 영역이나 힙 영역을 공유하며 동작합니다. 자원 공유를 통해 자원의 중복을 최소화하여 관리할 수 있습니다. 싱글 스레드의 장단점 장점 스레드 간의 자원 공유가 없기 때문에 그에 대한 동기화에 대해 신경쓰지 않아도 됩니다. 스레드 간의 context switching이 일어나지 않으므로 이 과정에서 발생하는 오버헤드를 방지할 수 있습니다. 단점 여러개의 CPU를 활용하지 못합..

[Java] 메모리 구조와 가비지 컬렉션

Java의 메모리 구조 가비지 컬렉션에 대해 알아보기에 앞서 java의 메모리 영역에 대해 간단하게 다뤄보겠습니다. static / stack / heap 이렇게 세 영역으로 구분됩니다. Static 영역 하나의 JAVA 파일은 크게 필드(field), 생성자(constructor), 메소드(method)로 이루어집니다. 필드에서 선언된 전역변수와 static 멤버변수가 Static 영역에 저장됩니다. Static 영역의 데이터는 프로그램이 시작할 때부터 끝날 때까지 계속 메모리에 유지 됩니다. 그렇다보니 전역변수를 과하게 많이 사용하다 보면 메모리가 부족 문제가 발생할 수 있어 필요한 변수만 전역변수로 사용해야 합니다. Stack 영역 메소드에서 정의한 기본 자료형(int, double, byte, l..

Java/Java 기타 2021.11.10

[백준 18428 - Java] 감시 피하기

https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net 문제 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복도로 빠져나온 학생들은 선생님의 감시에 들키지 않는 것이 목표이다. 각 선생님들은 자신의 위치에서 상, 하, 좌, 우 4가지 방향으로 감시를 진행한다. 단, 복도에 장애물이 위치한 경우, ..

[백준 1244 - Java] 스위치 켜고 끄기

https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 문제 1부터 연속적으로 번호가 붙어있는 스위치들이 있다. 스위치는 켜져 있거나 꺼져있는 상태이다. 에 스위치 8개의 상태가 표시되어 있다. ‘1’은 스위치가 켜져 있음을, ‘0’은 꺼져 있음을 나타낸다. 그리고 학생 몇 명을 뽑아서, 학생들에게 1 이상이고 스위치 개수 이하인 자연수를 하나씩 나누어주었다. 학생들은 자신의 성별과 받은 수에 따라 아래와 같은 방식으로 스위치를 조작하게 된다. ..

[백준 10159 - Java] 저울

https://www.acmicpc.net/problem/10159 10159번: 저울 첫 줄에는 물건의 개수 N 이 주어지고, 둘째 줄에는 미리 측정된 물건 쌍의 개수 M이 주어진다. 단, 5 ≤ N ≤ 100 이고, 0 ≤ M ≤ 2,000이다. 다음 M개의 줄에 미리 측정된 비교 결과가 한 줄에 하나씩 www.acmicpc.net 문제 무게가 서로 다른 N 개의 물건이 있다. 각 물건은 1부터 N 까지 번호가 매겨져 있다. 우리는 일부 물건 쌍에 대해서 양팔 저울로 어떤 것이 무거운 것인지를 측정한 결과표를 가지고 있다. 이 결과표로부터 직접 측정하지 않은 물건 쌍의 비교 결과를 알아낼 수도 있고 알아내지 못할 수도 있다. 예를 들어, 총 6개의 물건이 있고, 다음 5개의 비교 결과가 주어졌다고 가..

[백준 18429 - Java] 근손실

https://www.acmicpc.net/problem/18429 18429번: 근손실 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 www.acmicpc.net 문제 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 감소하게 된다. 따라서 운동을 하지 않고, 가만히 있다면 매일매일 중량이 감소할 뿐이다. 다행히도 이 대학원생은 N개의 서로 다른 운동 키트를 가지고 있다. 이 대학원생은 하루에..

[백준 1189 - Java] 컴백홈

https://www.acmicpc.net/problem/1189 1189번: 컴백홈 첫 줄에 정수 R(1 ≤ R ≤ 5), C(1 ≤ C ≤ 5), K(1 ≤ K ≤ R×C)가 공백으로 구분되어 주어진다. 두 번째부터 R+1번째 줄까지는 R×C 맵의 정보를 나타내는 '.'과 'T'로 구성된 길이가 C인 문자열이 주어진다 www.acmicpc.net 문제 한수는 캠프를 마치고 집에 돌아가려 한다. 한수는 현재 왼쪽 아래점에 있고 집은 오른쪽 위에 있다. 그리고 한수는 집에 돌아가는 방법이 다양하다. 단, 한수는 똑똑하여 한번 지나친 곳을 다시 방문하지는 않는다. 위 예제는 한수가 집에 돌아갈 수 있는 모든 경우를 나타낸 것이다. T로 표시된 부분은 가지 못하는 부분이다. 문제는 R x C 맵에 못가는 부..

728x90
반응형