danbibibi
article thumbnail
BOJ 17144번: 미세먼지 안녕!

문제 문제 바로가기> BOJ 17144번: 미세먼지 안녕! 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 풀이 문제에서 요구하는 대로 구현만 해주면 된다! C++ #include #define MAX 51 using namespace std; int ar = 0; int R, C, T; int home[MAX][MAX]; int copy_home[MAX][MAX]; int dr[] = {-1, 1, 0, 0}; int dc[] = {0, 0, -1, 1}; void input(){ cin >> R >> C ..

article thumbnail
DBMS (데이터베이스 관리 시스템)
CS/데이터베이스 2023. 1. 12. 09:12

DBMS (Database Management System) : 어떤 조직에 대한 모든 정보를 가지고 있는 시스템으로, 데이터를 체계적으로 저장, 관리, 운영할 수 있도록 잘 조직화한 것 서로 관련된 데이터들의 집합, 데이터에 접근하기 위한 프로그램의 집합 (DB) + 데이터와 프로그램을 쉽고 편리하게 사용할 수 있는 환경 ( = DBMS) ( * DBMS는 DB에 정보를 저장하고, 또 이를 검색하기 위한 편리하고 효율적인 환경을 제공) DBMS 목적 DBMS 이전에는 파일 시스템을 이용해 데이터를 관리 이 경우, 데이터 중복, 비일관성, 고립, 무결성 등의 문제가 발생 ! → 이러한 문제를 해결하기 위해 DBMS 등장! DBMS 특징 데이터의 독립성 물리적 독립성 : 응용 프로그램이 물리적 스키마(크기..

article thumbnail
DeadLock (교착 상태)
CS/운영체제 2023. 1. 12. 00:35

DeadLock 일련의 프로세스들이 서로가 가진 자원을 기다리며 block 되어 더 이상 진행이 될 수 없는 상태 ( * LiveLock : 스레드가 정체된 상태는 아니지만 계속 시도해도 진행이 안되는 경우 ) Deadlock Characterization : deadlock이 일어나기 위한 4가지 필요조건으로, deadlock이 일어난 경우 아래 조건을 모두 만족한다! 1. Mutual exclusion (상호 배제) : 단독으로 사용해야하는(공유가 불가능한) 자원이 적어도 하나 존재 2. Hold and wait (점유 대기) : 어떤 자원을 획득한 상태에서 다른 자원을 기다리는 상태 3. No preemption (비선점) : 본인인 스스로 더 이상 진행되지 않음에도 불구하고 가지고 있던 자원을 놓..

article thumbnail
BOJ 14502번: 연구소

문제 문제 바로가기> BOJ 14502번: 연구소 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 풀이 벽 3개를 놓을 수 있는 모든 조합의 경우를 고려해서, 안전 영역의 최대 크기를 구해 주면 된다! C++ #include #include #define MAX 9 #define EMPTY 0 #define WALL 1 #define VIRUS 2 using namespace std; int N, M; int ans = 0; int lab[MAX][MAX]; int copy_lab[MAX][MAX]; int dy[] = {..

article thumbnail
BOJ 14889번: 스타트와 링크

문제 문제 바로가기> BOJ 14889번: 스타트와 링크 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 풀이 start와 link 팀을 나눌 수 있는 모든 경우의 수로 나누어주고, 두 팀의 능력치 차이의 최솟값을 구해주었다. C++ #include #include #define MAX 21 #define INF 1000000001 using namespace std; int N, ans = INF; int score[MAX][MAX]; bool start_team[MAX]; void input() { cin >> N; for (i..

article thumbnail
BOJ 15686번: 치킨 배달

문제 문제 바로가기> BOJ 15686번: 치킨 배달 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 풀이 조합을 통해 M개의 치킨집을 선택하고, 집들과의 맨해튼 거리를 구해서, 도시의 치킨 거리의 최솟값을 구해줄 수 있다! C++ #include #include #define MAX 14 #define INF 1000000001 #define EMPTY 0 #define HOUSE 1 #define CHICKEN 2 using namespace std; int selected[MAX]; ..

article thumbnail
BOJ 14888번: 연산자 끼워넣기

문제 문제 바로가기> BOJ 14888번: 연산자 끼워넣기 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 풀이 모든 경우의 수를 탐색하며, 최댓값과 최솟값을 구해주면 된다! C++ #include #define MAX 12 using namespace std; int N; int max_val = -100000001; // 만들 수 있는 식의 결과의 최댓값 int min_val = 100000001; // 최솟값 int A[MAX], oper[4]; //..

article thumbnail
BOJ 14503번: 로봇 청소기

문제 문제 바로가기> BOJ 14503번: 로봇 청소기 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 풀이 문제에서 설명한 조건에 따라 구현해주면 된다! 문제의 2-1, 2-2 조건은 현재 위치에서 반 시계 방향으로 돌면서 청소 가능한 위치를 찾는 것을 의미한다! [북 동 남 서] 순서의 배열이기 때문에, 반시계 방향은 -1을 해주면 된다. 이때, "북(0)-1 = -1" 이므로, 이를 방지하기 위해 "(d-1+4)%4 = (d+3)%4" 를 해준 것이다. C++ #include #include #defin..

article thumbnail
SWEA 3234번: 준환이의 양팔저울
문제 풀이/SWEA 2023. 1. 6. 00:57

문제 문제 바로가기> SWEA 3234번: 준환이의 양팔저울 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 " 오른쪽 추의 무게

article thumbnail
BOJ 2573번: 빙산
문제 풀이/백준 2022. 12. 31. 22:44

문제 문제 바로가기> BOJ 2573번: 빙산 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 풀이 dfs를 사용하여 빙하가 분리되었는지 확인해주는 방식으로 문제를 풀었다! #include #include #define MAX 301 using namespace std; int N, M; bool allmelt; int arr[MAX][MAX]; int copy_arr[MAX][MAX]; bool visited[MAX][MAX]; int dy[] = {-1, 1, 0, 0}; int dx[] = {0, ..

article thumbnail
BOJ 11057번: 오르막 수
문제 풀이/백준 2022. 12. 30. 05:42

문제 문제 바로가기> BOJ 11057번: 오르막 수 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 풀이 아래와 같은 규칙을 가지므로, 점화식이 dp[i][j] = (dp[i][j-1] + dp[i-1][j])%DIV 이다! #include #define MAX 1001 #define DIV 10007 using namespace std; int N; int dp[MAX][11]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0)..

article thumbnail
[JAVA] 기본
언어/JAVA 2022. 12. 29. 20:57

1학년 때 JAVA를 처음 배우고, 2학년 이후로는 JAVA를 쓸 일이 거의 없었던 것 같다. (그래도 1학년 때 나름 JAVA 공부 열심히 해뒀음 ㅎ) 현업에서는 JAVA를 많이 사용한다고 하니,,, SSAFY 입과 전에 열심히 복습해 보겠어 😎 (if, for, while 문 같은 내용은 정리하지 않았다! java 적인 것? 위주로 정리했다.) JAVA 객체 지향적 언어 (↔ 절차 지향적 언어) write once run anywhere (동일한 프로그램이 운영체제 가리지 않고 실행) * WROA - 현대에는 자바뿐만 아니라 대부분의 프로그래밍 언어가 이를 일부분에서 모두 지원 객체지향 프로그래밍 Object-Oriented Programming 로직을 상태(state)와 행위(behave)로 이루어..

article thumbnail
BOJ 5014번: 스타트링크
문제 풀이/백준 2022. 12. 28. 06:01

문제 문제 바로가기> BOJ 5014번: 스타트링크 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 풀이 BFS를 사용해서 푸는 문제였다! #include #include #define MAX 1000001 using namespace std; int F, S, G, U, D; bool visited[MAX]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> F >> S >> G >> U >> D; visited[S] = true; queue q; q.push(..

article thumbnail
프로세스 동기화 (Synchronization)
CS/운영체제 2022. 12. 28. 00:12

동기화 vs 비동기화1. 동기화(Synchronous) 동시에 일어나서, 결과가 그 자리에서 주어짐설계가 매우 간단하고 직관적결과가 주어질 때까지 아무것도 못하고 대기해야 함2. 비동기화(Asynchronous)동시에 일어나지 않아서, 결과가 그자리에서 주어지지 않음동기화보다 복잡함결과가 주어지는데 시간이 걸리지만, 그 동안 다른 작업을 할 수 있어서 자원을 효율적으로 사용할 수 있음 Race Condition: 여러 프로세스들이 동시에 데이터에 접근할 때 어떤 순서로 접근하느냐에 따라 결과 값이 달라질 수 있는 상황 공유 데이터의 동시 접근(Concurrent access)은 데이터의 불일치 문제를 발생시킬 수 있음Race condition을 막고, 일관성을 유지하기 위해 협력 프로세스 간의 실행 순서..

article thumbnail
BOJ 16236번: 아기상어

문제 문제 바로가기> BOJ 16236번: 아기상어 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 풀이 문제의 요구사항에 따라 구현해 주면 된다. 설명은 주석으로 자세히 적어 놓았다! 이런 문제는 물고기 먹은 처리, 상어 정보 update 등을 잊지 않고 해주는 게 중요한 것 같다. 문제를 풀 때, 알고 있으면 도움이 되는 개념은 다음과 같다! ✔️ operator 재정의 ✔️ 구조체 정의 ✔️ 그래프 탐색 C++ #include #include #include #define MAX 21 using n..