본문 바로가기

Algorithm/Math

(100)
(C++) - 백준(BOJ) 19939번 : 박 터뜨리기 https://www.acmicpc.net/problem/19939 19939번: 박 터뜨리기 $N$개의 공을 $K$개의 바구니에 문제의 규칙을 만족하면서 나눠 담을 수 있다면, 가장 많이 담긴 바구니와 가장 적게 담긴 바구니의 공의 개수 차이를 출력한다. 나눠 담을 수 없는 경우에는 -1을 www.acmicpc.net 공식을 찾아 푸는 수학문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n, k 선언 후 입력받습니다. 📔 풀이과정 겹치지 않으면서 최소 1개를 바구니에 배분해야하므로 1, 2, 3, .... , x 가 k개의 바구니에 담겨있는 모양이 됩니다. \sum_{1}^{x} p = n 이라는 공식이 성립합니다. \sum_{1}^{x} p = k(k+1)/2 = n 이 배분할 수 있는 최저 조건입니다..
(C++) - 백준(BOJ) 12833번 : XORXORXOR https://www.acmicpc.net/problem/12833 12833번: XORXORXOR 세 수 A, B, C를 입력 받은 다음, ( ( ( ( A XOR B ) XOR B ) XOR B ) … ) XOR B 형태로 연산을 C회 했을 때의 결과값을 출력하는 프로그램을 작성하시오. www.acmicpc.net XOR의 성질을 알 수 있는 수학문제였습니다. 📕 풀이방법 📔 입력 및 초기화 a, b, c, ans를 선언합니다. 그 후 a, b, c를 입력합니다. 📔 풀이과정 XOR는 같은 값의 비트에 대해 0을, 다른 값의 비트에 대해 1인 계산결과를 보여줍니다. 따라서 (a XOR b) XOR b를 하게 된다면 자기 자신이 나오는 특징을 가지게 됩니다. c가 짝수라면 XOR를 짝수번 실행하므로 a..
(C++) - 백준(BOJ) 8723번 : Patyki https://www.acmicpc.net/problem/8723 8723번: Patyki Pierwszy wiersz wejścia zawiera trzy liczby całkowite a, b, c (1 ≤ a, b, c ≤ 1000), oznaczające odpowiednio długości pierwszego, drugiego i trzeciego patyka. www.acmicpc.net 수식을 세우고 분기문을 사용해보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 방 3개인 일차원 배열 a, 정삼각형인지 직각삼각형인지 판별하는 bool 변수 f1, f2 를 선언합니다. 그 후 세 수를 입력받습니다. 그 세 수를 오름차순으로 정렬합니다. 📔 풀이과정 1. 세 수가 모두 같으면 정삼각형이므로 ..
(C++) - 백준(BOJ) 21771번 : 가희야 거기서 자는 거 아니야 https://www.acmicpc.net/problem/21771 21771번: 가희야 거기서 자는 거 아니야 베게 중 8칸이 가희에 의해 가려졌으므로, 가희는 베게 위에서 자고 있습니다. www.acmicpc.net 간단한 수식 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 길이, 2차원 문자열 board에 정보를 입력합니다. 📔 풀이과정 무조건 직사각형의 형태로 입력받기 때문에 'P'의 개수를 셌을 때 가로 * 세로와 같다면 가희가 베개위에 있지 않다는 의미입니다. 📔 정답출력 'P'의 개수 = 베개의 가로 * 세로라면 0을 아니라면 1을 출력합니다. 📕 Code #include using namespace std; using pii = pair; char board[101][101]; int r,..
(C++) - 백준(BOJ) 8718번 : Bałwanek https://www.acmicpc.net/problem/8718 8718번: Bałwanek W pierwszym wierszu wejścia znajdują się dwie liczby całkowite x, k (1 ≤ x ≤ 106, 1 ≤ k ≤ 105, k < x), oznaczające odpowiednio ilość litrów śniegu w parku oraz z ilu litrów śniegu zbudowana jest jedna z kul śnieżnych bałwana. www.acmicpc.net 방정식을 세워 답을 구하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 x, k를 선언 후 입력받습니다. 📔 풀이과정 눈 사람은 총 세 부분입니다. 따라서 주어진 k는 눈사람을 구성하..
(C++) - 백준(BOJ) 6768번 : Don’t pass me the ball! https://www.acmicpc.net/problem/6768 6768번: Don’t pass me the ball! A CCC soccer game operates under slightly different soccer rules. A goal is only counted if the 4 players, in order, who touched the ball prior to the goal have jersey numbers that are in strictly increasing numeric order with the highest number being the www.acmicpc.net 조합 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 골을 넣은 플레이어의 번호 n을 선언 후 입력받습니다..
(C++) - 백준(BOJ) 1173번 : 운동 https://www.acmicpc.net/problem/22864 22864번: 피로도 첫 번째 줄에 $A$, $B$, $C$, $M$이 공백으로 구분되어 주어진다. (하루는 24시간이다.) 맨 처음 피로도는 0이다. www.acmicpc.net 수학 + greedy 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 일한 양을 저장할 변수 work, 피로도 변수 tired, a, b, c, m을 선언합니다. * int 범위 초과할 수 있으므로 long long으로 선언합니다. 📔 풀이과정 1. 24시간동안 일할 수 있으면 일 해줍니다. 일을 하고 work += b, 피로도가 a만큼 올랐으니 tired + a 해줍니다. 2. 일할 수 없다면 쉬어줍니다. tired -= c 해주며 tired음수면 0으로 다시..
(C++) - 백준(BOJ) 1284번 : 집 주소 https://www.acmicpc.net/problem/1284 1284번: 집 주소 재석이는 대문에 붙이는 (주소를 나타내는) 호수판 제작업체의 직원이다. 고객에게 전달할 호수판은 숫자와 숫자 사이 그리고 왼쪽 오른쪽으로 적당히 여백이 들어가 줘야하고 숫자마다 차지하 www.acmicpc.net 간단한 산술 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문자열 s가 "0"일 때까지 입력합니다. 📔 풀이과정 1. 문제에서 모든 형태의 문자열은 s.size() + 1 만큼의 간격을 가지게 됩니다. 따라서 이는 변수 width에 고정적으로 더해집니다. 2. 이를 제외한 간격은 글씨자체의 간격뿐이므로 1일 때는 2, 0일 때는 4, 이외의 숫자에는 3을 문자 하나씩 확인해가며 출력할 정답 변수 width에 ..