CS
-
/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1018번 - 체스판 다시 칠하기 : https://www.acmicpc.net/problem/1018 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M*N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8*8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를..
[백준] 1018번 - 체스판 다시 칠하기 with Kotlin/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1018번 - 체스판 다시 칠하기 : https://www.acmicpc.net/problem/1018 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M*N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8*8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를..
2021.10.15 -
/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 7568번 - 덩치 : https://www.acmicpc.net/problem/7568 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A..
[백준] 7568번 - 덩치 with Kotlin/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 7568번 - 덩치 : https://www.acmicpc.net/problem/7568 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A..
2021.10.14 -
/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 2231번 - 분해합 : https://www.acmicpc.net/problem/2231 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로..
[백준] 2231번 - 분해합 with Kotlin/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 2231번 - 분해합 : https://www.acmicpc.net/problem/2231 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로..
2021.10.14 -
/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 2798번 - 블랙잭 : https://www.acmicpc.net/problem/2798 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크..
[백준] 2798번 - 블랙잭 with Kotlin/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 2798번 - 블랙잭 : https://www.acmicpc.net/problem/2798 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크..
2021.10.14 -
/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 16967번 : https://www.acmicpc.net/problem/16967 문제 크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐진다. 즉, 배열 B의 (i, j)에 들어있는 값은 아래 3개 중 하나이다. (i, j)가 두 배열 모두에 포함되지 않으면, Bi,j = 0이다. (i, j)가 두 배열 모두에 포함되면, Bi,j = Ai,j + Ai-X,j-Y이다...
[백준] 16967번 - 배열 복원하기 with 코틀린/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 16967번 : https://www.acmicpc.net/problem/16967 문제 크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐진다. 즉, 배열 B의 (i, j)에 들어있는 값은 아래 3개 중 하나이다. (i, j)가 두 배열 모두에 포함되지 않으면, Bi,j = 0이다. (i, j)가 두 배열 모두에 포함되면, Bi,j = Ai,j + Ai-X,j-Y이다...
2021.10.14 -
/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [BoostCourse] 자바로 구현하고 배우는 자료구조 - Heap : https://www.boostcourse.org/cs204 1. 힙이란? 힙은 '최댓값 및 최솟값을 찾아내는 연산'을 빠르게 하기 위해 고안된 '완전이진트리를 기반으로 한 자료구조'이다. 완전이진트리 조건 1. 마지막 레벨을 제외한 모든 노드가 채워져야한다. 2. 모든 노드들은 왼쪽부터 채워져야한다. 힙에는 최대 힙(max heap)과 최소 힙(min heap)이 있다. 부모 노드가 자식 노드보다 크면 최대 힙, 반대이면 최소 힙이다. 가장 큰 숫자가 뿌리에 있게 하려면 최대 ..
[자료 구조] 힙/* 본 게시물은 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [BoostCourse] 자바로 구현하고 배우는 자료구조 - Heap : https://www.boostcourse.org/cs204 1. 힙이란? 힙은 '최댓값 및 최솟값을 찾아내는 연산'을 빠르게 하기 위해 고안된 '완전이진트리를 기반으로 한 자료구조'이다. 완전이진트리 조건 1. 마지막 레벨을 제외한 모든 노드가 채워져야한다. 2. 모든 노드들은 왼쪽부터 채워져야한다. 힙에는 최대 힙(max heap)과 최소 힙(min heap)이 있다. 부모 노드가 자식 노드보다 크면 최대 힙, 반대이면 최소 힙이다. 가장 큰 숫자가 뿌리에 있게 하려면 최대 ..
2021.10.09 -
/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 15650번 - N과 M (2) : https://www.acmicpc.net/problem/15650 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 1. 조합이란? 표현 : nCr 정의 : 서로 다른 n개 중의 r 개를 뽑을때, 순서의 상관없이 뽑는 경우의 수 예시 : [1,2,3,4] 중 2개 뽑을 때 [1, 2] [1, 3] [1, 4] [2, 3] [2, 4] [3, 4] 2. 조합 구현 백준 15650번 문제를 통해 조합을 구현해보자. 문제 자연수 N과 M이 주어졌을 때, ..
[Algorithm] 조합 with 백준 15650번/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 15650번 - N과 M (2) : https://www.acmicpc.net/problem/15650 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 1. 조합이란? 표현 : nCr 정의 : 서로 다른 n개 중의 r 개를 뽑을때, 순서의 상관없이 뽑는 경우의 수 예시 : [1,2,3,4] 중 2개 뽑을 때 [1, 2] [1, 3] [1, 4] [2, 3] [2, 4] [3, 4] 2. 조합 구현 백준 15650번 문제를 통해 조합을 구현해보자. 문제 자연수 N과 M이 주어졌을 때, ..
2021.10.05 -
/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 [백준] 15649번 - N 과 M (1) : https://www.acmicpc.net/problem/15649 1. 순열이란? 표현 : nPr 정의 : 서로 다른 n개 중의 r개를 뽑을 때, 순서를 포함한 경우의 수 예시 : [1, 2, 3] 배열의 순열 경우의 수 [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 2. 순열 구현 (with 백준 15649번) 문제 자연수 N과 M이 주..
[Algorithm] 순열 with 백준 15649번/* 본 게시물은 ' ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [AeroCode] 순열과 조합 알고리즘 : https://aerocode.net/376 [백준] 15649번 - N 과 M (1) : https://www.acmicpc.net/problem/15649 1. 순열이란? 표현 : nPr 정의 : 서로 다른 n개 중의 r개를 뽑을 때, 순서를 포함한 경우의 수 예시 : [1, 2, 3] 배열의 순열 경우의 수 [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 2. 순열 구현 (with 백준 15649번) 문제 자연수 N과 M이 주..
2021.10.05 -
/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 18258번 - 큐2 : https://www.acmicpc.net/problem/18258 1. 큐(Queue)란? 큐는 스택과는 반대로 입력과 출력 창구가 따로 존재하고, 제일 먼저 들어간 데이터가 제일 먼저 나오는 자료구조(First In First Out / 선입 선출)이다. 이는 우리가 먼저 온 차례대로 줄을 세우는 것과 같다. 큐는 작업을 처리하는 요소에 부하를 주지 않으면서도 처리 능력을 넘어서는 작업들을 놓치지 않고 수용할 수 있게 한다. 이러한 특성으로 큐는 '완충장치(대기열)'로 사용되는 경우가 많다. 큐의 기능 스택과 마찬가지로 큐의 주요 기능도 삽입(Enqueue), 제거(De..
[자료구조] 큐/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 18258번 - 큐2 : https://www.acmicpc.net/problem/18258 1. 큐(Queue)란? 큐는 스택과는 반대로 입력과 출력 창구가 따로 존재하고, 제일 먼저 들어간 데이터가 제일 먼저 나오는 자료구조(First In First Out / 선입 선출)이다. 이는 우리가 먼저 온 차례대로 줄을 세우는 것과 같다. 큐는 작업을 처리하는 요소에 부하를 주지 않으면서도 처리 능력을 넘어서는 작업들을 놓치지 않고 수용할 수 있게 한다. 이러한 특성으로 큐는 '완충장치(대기열)'로 사용되는 경우가 많다. 큐의 기능 스택과 마찬가지로 큐의 주요 기능도 삽입(Enqueue), 제거(De..
2021.10.01 -
/* 본 게시물은 ' 뇌를 자극하는 알고리즘 | with 박상현 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 10028번 - 스택 : https://www.acmicpc.net/problem/10828 1. 스택이란? '스택'의 사전적 의미는 건초나 짚더미와 같은 뭔가를 쌓아놓은 더미를 뜻한다. 자료구조의 스택 또한 데이터를 아래에서부터 위로 쌓아 얹어 올리도록 하는 자료구조이다. 스택은 중간에 데이터를 삽입하거나 삭제하는 것을 허용하지 않는다. 데이터의 입/출력은 오로지 스택의 꼭대기에서만 이루어진다. 즉, 스택은 '선입후출' (First In - Last out) 의 특징을 가진다. 스..
[자료구조] 스택/* 본 게시물은 ' 뇌를 자극하는 알고리즘 | with 박상현 ' 의 내용과 참고자료를 토대로 작성되었습니다. */ /* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 10028번 - 스택 : https://www.acmicpc.net/problem/10828 1. 스택이란? '스택'의 사전적 의미는 건초나 짚더미와 같은 뭔가를 쌓아놓은 더미를 뜻한다. 자료구조의 스택 또한 데이터를 아래에서부터 위로 쌓아 얹어 올리도록 하는 자료구조이다. 스택은 중간에 데이터를 삽입하거나 삭제하는 것을 허용하지 않는다. 데이터의 입/출력은 오로지 스택의 꼭대기에서만 이루어진다. 즉, 스택은 '선입후출' (First In - Last out) 의 특징을 가진다. 스..
2021.09.30 -
/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1002번 - 터렛 : https://www.acmicpc.net/short/status/1002/69/1 문제 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다. 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 이루어져..
[백준] 1002번 터렛 - 두 원의 접점 구하기 with Kotlin/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1002번 - 터렛 : https://www.acmicpc.net/short/status/1002/69/1 문제 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다. 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 이루어져..
2021.09.30 -
/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1929번 - 소수 구하기 : https://www.acmicpc.net/problem/1929 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 1. Mysolution 기존에 내가 소수를 구하는 방식은 다음과 같다. 소수는 1과 자기 자신만을 약수로 가진다. -> 2부터 N-1 까지의 수로 나누었을 때 나머지가 0이 되면 안 된다. 위 방식을 코드로 구현하면 다음과 같다. fun isPrimeNum(n : Int):..
[Algorithm] 소수 빠르게 구하기 (에라토스테네스의 체) with 백준 1929번/* 본 글은 개인적으로 공부한 내용을 정리한 글이므로 오류가 있을 수 있습니다. */ 참고 자료 [백준] 1929번 - 소수 구하기 : https://www.acmicpc.net/problem/1929 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 1. Mysolution 기존에 내가 소수를 구하는 방식은 다음과 같다. 소수는 1과 자기 자신만을 약수로 가진다. -> 2부터 N-1 까지의 수로 나누었을 때 나머지가 0이 되면 안 된다. 위 방식을 코드로 구현하면 다음과 같다. fun isPrimeNum(n : Int):..
2021.09.28