JOHOONDAY
본문 바로가기
728x90

전체 글140

백준 No.1328 [고층 빌딩] Baekjoon Online Judge No.1328 [고층 빌딩] 문제 1328번: 고층 빌딩 (acmicpc.net) 1328번: 고층 빌딩 상근이가 살고있는 동네에는 빌딩 N개가 한 줄로 세워져 있다. 모든 빌딩의 높이는 1보다 크거나 같고, N보다 작거나 같으며, 같은 높이를 가지는 빌딩은 없다. 상근이는 학교 가는 길에 가장 왼 www.acmicpc.net 설명 핵심 변수 : unsigned long long city[N][L][R]; N개의 빌딩이 있고, 좌측에서는 L 개의 빌딩, 우측에서는 R 개의 빌딩이 보일 때 경우의 수의 값을 의미한다. city[1][1][1] 은 1개의 빌딩이 있고, 좌측에서는 1개의 빌딩, 우측에서는 1개의 빌딩이 보이는 경우의 수의 값을 의미한다. 이 경우엔 그냥.. 2021. 7. 12.
백준 No.1937 [욕심쟁이 판다] Baekjoon Online Judge No.1937 [욕심쟁이 판다] 문제 1937번: 욕심쟁이 판다 n*n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에서 www.acmicpc.net 설명 DFS를 활용한 DP문제이다. land[i][j] array 를 입력되는 대나무 숲에 대한 정보이고, dp[i][j] array 를 (i, j) 위치에서 최대로 살 수 있는 일수라고 하자. 백준 사이트에 있는 입력 예시이다. 한 위치를 예로 설명을 해 볼 것이다. 위 경우를 가지고 dp[0][1]의 값을 구하는 과정, 식은 아래와 같다. dp[0][1] = max(dp[0.. 2021. 7. 11.
Toy project - Omok(오목) #2 오목 #2 file 사용 방법 * Move : ↑ ↓ ← → key * Set : Spacebar Update 내용 1. 오목판이 다 찬 경우 무승부가 뜨도록 처리 2. 게임이 끝난 후 Regame 여부를 묻고, Player가 Regame을 원하면 다시 게임을 시작시킨다. 3. 게임이 끝난 후 만들어진 5줄이 잘 보이도록 수정 4. 이전 이미 바둑알이 놓여있는 곳에 겹쳐 놓을 수 있었던 오류를 수정 5. 디자인 수정 Console Code 더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52.. 2021. 7. 11.
Toy project - Omok(오목) #1 오목 #1 file 사용 방법 * Move : ↑ ↓ ← → key * Set : Spacebar Update 내용 1. RED, GREEN 색으로 서로 겨루는 사람을 나누었다. 2. 첫 턴은 RED color 부터 시작한다. 3. 우측 상단에는 현재 턴에 해당하는 Player 를 알려준다. 4. 한 Player 가 승리하면 그 승리한 Player가 이겼다는 문구를 우측에 알려준다. Next Update 예정 내용 1. 오목판이 다 찼지만 승부가 가려지지 않은 경우를 처리한다. 2. 게임이 끝난 후 Regame 여부를 묻고, Player 가 Regame을 원하면 다시 게임을 시작시킨다. 3. 게임이 끝난 순간 5줄이 만들어진 모습이 보이지 않는다. 그 모습을 보일 것 이다. 4. 이미 바둑알이 놓여진 곳.. 2021. 7. 9.
ASCII code (아스키 코드) / ASCII code table (아스키 코드 표) 아스키 코드란? 미국에서 표준화가 추진된 7비트 부호이다. 총 256개의 문자가 정의되어있다. 0 ~ 127 부호에 대해선 숫자, 영문자 및 특수기호가 정의가 되어있으며 128 ~ 255 부호에 대해선 나머지 128개의 확장 문자가 정의가 되어있다. ASCII code table ※ 클릭 후 보시면 더 선명하게 보실 수 있습니다. 2021. 7. 9.
운영체제 (Operating System) #1 OS : 컴퓨터 하드웨어를 관리하는 프로그램 OS의 정의 OS는 컴퓨터 하드웨어를 관리하는 프로그램 이다. OS는 또한 응용프로그램을 위한 기반을 제공하며 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 다양한 방법으로 수행한다. 어떤 OS는 일반인들이 사용하기 편리하도록 설계되고, 일부는 효율성에 주안을 두고 설계되고, 일부는 이 둘의 조합으로 설계가 된다. 사용자의 관점에서 바라본 OS 작업을 하는 사용자의 PC에서 OS의 목표는 사용자가 수행하는 작업을 최대화 하는 것이다. 이러한 경우 OS는 대부분 사용의 편이성을 위해 설계가 되고, 성능에 조금 신경을 쓰고 다양한 H/W와 S/W 자원이 어떻게 공유되는가와 같은 자원의 이용에는 전혀 신경을 쓰지 않는다. 다른 경우로, 동일한 컴퓨터를 각기.. 2021. 7. 8.
git Bash 명령어 git init : 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(=working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성 git config user.name 'JOHOONDAY' : 현재 사용자의 아이디를 'JOHOONDAY'로 설정(커밋할 때 필요한 정보) git config user.email 'JOHOONDAY@gmail.com' : 현재 사용자의 이메일 주소를 'JOHOONDAY@gmail.com'으로 설정(커밋할 때 필요한 정보) git add [파일 이름] : 수정사항이 있는 특정 파일을 staging area에 올리기 git add [디렉토리명] : 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 staging area에 올리기 git add ... 2021. 7. 6.
C++ PriorityQueue Container Priority Queue Container Priority Queue 란? 우선순위 queue 를 구현한 template class 이다. 기존의 queue container 에 오름차순, 내림차순을 사용하여 우선순위를 부여 한 것이다. header file 에 있다. Queue container 설명 Link : 2021.02.09 - [C++ Header/#include ] - Queue container 형식 template template class priority_queue 생성자 std::priority_queue pq; // default container type : vector, default 정렬기준 : less std::priority_queue pq; // default 정렬기준 .. 2021. 7. 6.
SCPC 6회 예선 [사다리 게임] SCPC 6회 예선 [사다리 게임] 문제 Practice | codeground 위 Link 에서 "125번 SCPC 6회 예선 [사다리 게임]" 에 해당이 된다. 설명 A 상태 : 아직 가로 이음선을 받기 전 상태 B 상태 : 가로 이음선을 하나 받은 상태 C 상태 : 가로 이음선을 2개 받은 상태 D 상태 : 가로 이음선을 3개 받은 상태 E 상태 : 가로 이음선을 4개 받은 상태 이렇게 해당이 된다. 저렇게 이음선을 하나하나 입력받을 때 마다 I --> J 로 가는 방법에서 고장난 가로 이음선의 최소개수를 계속해서 업데이트를 할 것이다. dp[A][B] = A 에서 B 로 갈 때 고장난 가로 이음선의 최소개수 A 상태에는 I --> J ( I != J ) 에 해당이 되는 경로가 존재하지 않는다. 따.. 2021. 7. 3.
백준 No.17387 [선분 교차 2] Baekjoon Online Judge No.17387 [선분 교차 2] 문제 17387번: 선분 교차 2 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. www.acmicpc.net 설명 이전 17386번: 선분 교차 1 (acmicpc.net) 문제에서 조건이 더 추가가 된 문제이다. [선분 교차 1] 문제에선 세 점이 한 직선상에 있는 경우가 없었지만, 이번 문제에선 세 점이 한 직선상에 있는 경우가 있기에 이 조건까지 처리를 해야 한다. 이전에 올린 [선분 교차 1] 게시물에서 더 추가해야 하는 조건을 설명 해 보고자 한다. 백준 No.17386 [선분 교차 1] 설명 Link : 2021.06.28 - [C++ Alg.. 2021. 6. 29.
백준 No.17386 [선분 교차 1] Baekjoon Online Judge No.17386 [선분 교차 1] 문제 17386번: 선분 교차 1 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. 세 점이 일직선 위에 있는 경우는 없다. www.acmicpc.net 설명 선분 교차 여부를 확인하기 위해서 CCW를 사용하였다. CCW 설명 Link : 2021.06.27 - [C++ Algorithm/Math] - CCW (Counter Clock Wise) 위 첨부된 사진을 보면 CCW(A, B, C) 의 값은 양수이고 CCW(A, B, D) 의 값은 음수이다. 또한 CCW(C, D, A) 의 값은 음수이고 CCW(C, D, B.. 2021. 6. 28.
CCW (Counter Clock Wise) CCW (Counter Clock Wise) CCW 란? 평면에 존재하는 세 점에 대해서 위치 관계를 알 수 있는 알고리즘이다. 좌표 내 임의의 점이 어떠한 선분을 기준으로 반시계방향에 있다면 양수, 시계방향에 있다면 음수, 선분의 연상선인 직선상에 있다면 0을 출력한다. 설명 공식 : CCW = (Bx - Ax) * (Cy - Ay) - (Cx - Ax) * (By - Ay) CCW 의 값이 양수라면? : 점 C는 선분 AB의 반시계방향에 위치한다. CCW 의 값이 음수라면? : 점 C는 선분 AB의 시계방향에 위치한다. CCW 의 값이 0 이라면? : 점 C는 선분 AB의 직선상에 위치한다. 위 예시 첨부 사진 상에선 점C 가 선분 AB의 반시계방향에 위치하므로 CCW 의 값은 양수가 된다. 점 A,.. 2021. 6. 27.
Bitmask (2), "자주 사용되는 형태" Bitmask (2), "자주 사용되는 형태" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 int nth_bit_on(int n) { return 1 2021. 2. 25.
백준 No.7579 [앱] BOJ No.7579 [앱] Problem 7579번: 앱 입력은 3줄로 이루어져 있다. 첫 줄에는 정수 N과 M이 공백문자로 구분되어 주어지며, 둘째 줄과 셋째 줄에는 각각 N개의 정수가 공백문자로 구분되어 주어진다. 둘째 줄의 N개의 정수는 현재 활 www.acmicpc.net Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #include #include #define memory first #define cost second using namespace std; typedef pair PII; int cost_max =.. 2021. 2. 22.
플로이드 워셜 알고리즘 (Floyd-Warshall Algorithm) 플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm) What is Floyd-Warshall Algorithm? Dijkstra (다익스트라) 알고리즘이 시작하고자 하는 한 vertex에서 나머지 vertex들로 가는 최소 비용을 구하는 알고리즘 이라면, 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)은 모든 정점에서 모든 정점으로 가는 최소 비용을 2차원 array 혹은 vector 에 저장을 해 둔다. 아래 코드에선 floyd[ i ][ j ]로 표기했고, 이 의미는 vertex i 에서 vertex j 로 가는 최소 비용을 의미한다. floyd[ i ][ j ]의 값을 vertex i, vertex j 를 제외한 모든 vertex 를 경유해보면서 더 작은값을.. 2021. 2. 20.
728x90