본문 바로가기

전체 글

(164)
[백준] JAVA - 15683. 감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 생각 'SWEA 1767. 프로세서 연결하기'와 로직이 비슷하다고 생각했습니다. CCTV가 탐색할수있는 영역을 모두 탐색하여 CCTV를 켜준 곳을 9로 마스킹처리를 해줬습니다. 그 다음 CCTV를 다시 0 값을 넣어 꺼줬다고 생각했는데 CCTV가 탐색하는 영역이 겹칠 수 있기 때문에 이렇게 바로 값을 특정 값으로 업데이트 시켜줘서 계속 틀렸습니다ㅠㅡㅠ 1. 비트 마스킹으로 CCTV의 방..
[백준] JAVA - 20056. 마법사 상어와 파이어볼 https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 생각 같은좌표에 있는 파이어볼을 나눠줄때 혼자 있는 파이어볼을 고려하지 않고 헤메다가 두번째 시도만에 풀었습니다..!! - 큐를 사용하여 각 단계별로 파이어볼의 이동을 동시에 처리해줬습니다. - 파이어볼 클래스를 생성하여 파이어볼 이동함수와 합치는 함수를 내부에서 따로 구현해줬습니다. move 함수는 파이어볼이 다음에 움직일 좌표를 계산합니다. 이때 '1번 ..
[백준] JAVA - 2629. 양팔저울 https://www.acmicpc.net/problem/2629 2629번: 양팔저울 첫째 줄에는 추의 개수가 자연수로 주어진다. 추의 개수는 30 이하이다. 둘째 줄에는 추의 무게들이 자연수로 가벼운 것부터 차례로 주어진다. 같은 무게의 추가 여러 개 있을 수도 있다. 추의 무 www.acmicpc.net 생각 시간초과로 친구의 도움을 받아 문제를 해결했습니다ㅠㅠ 완전탐색을 해버리면 부분집합인 O(2^N)의 시간복잡도를 가지게 되고 구슬의 개수가 M개이니 총 O(M*2^N) 을 가지게 됩니다. 따라서 dp와 메모이제이션을 통해 문제를 풀어야 합니다. 양팔 저울에서 왼쪽에 구슬을 위치시키고 오른쪽에 추를 위치시켜서 무게를 찾는다고 생각합니다. 다음으로 dp[i][j] : i번까지 추를 확인했을때 무게 ..
[백준] JAVA - 11399. ATM https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net Java Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Numbe..
[백준] JAVA - 1261. 알고스팟 https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net Java Code package com.java.algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class B..
[백준] JAVA - 16953. A > B https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net Java Code package com.java.algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class BOJ_16953_AB { public static void main(String[] args) throws IOException { BufferedReader br = ne..
[백준] JAVA - 14502. 연구소 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 생각 벽 3개를 완전탐색 3형제 중 조합을 통해 세워줬습니다. 벽 3개를 모두 세운 다음 각각의 경우마다 안전 영역의 크기가 최대값을 찾는 문제입니다. 벽을 세울때 재귀함수를 사용하여 현재위치에 벽을 세울 수 있다면 벽을 세워주고 그 다음 단계로 들어가 세울 수 있는 모든 경우를 탐색한뒤, 세웠던 벽을 원래대로 복구시켜줍니다. 벽을 모두 세운 다음 BFS를 사용하여 바이러스가 퍼지는 함수 spread를 만들었..
메모리 관리 - 메모리 단편화, 페이징, 세그멘테이션 메모리 단편화 RAM 에서 메모리의 공간이 작은 조각으로 나뉘어져 사용 가능한 메모리가 공간이 실제로는 충분히 존재하지만 사용이 불가능한 상태. 내부 단편화 : 메모리를 할당할 때 프로세스가 필요한 메모리보다 더 큰 메모리가 할당되어 프로세스에서 사용하는 메모리 공간이 낭비되는 현상. 예를 들어, 메모리를 할당하는 최소 블록 크기가 10K인데 프로세스는 5K만 필요한 상태면 5K가 낭비된다 외부 단편화 : 메모리가 할당 및 해제 작업을 반복하여 작은 메모리가 띄엄띄엄 존재할때 사용하지 않는 메모리가 존재하는 경우로총 메모리 공간은 충분하지만 실제로 사용이 불가능한 상태. 메모리 단편화 해결 방법 1. Paging 기법 메모리 공간이 연속적으로 할당되어야 한다는 제약조건을 없애는 메모리 관리 전략. 프로세..