본문 바로가기

Algorithm/Math

(97)
(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에 ..
(C++) - 백준(BOJ) 13458번 : 시험감독 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 단순 수학 문제였습니다. 📕 풀이방법 1. 총 감독관은 1명만 있어야하므로 무조건 추가되어야 합니다. 2. 부 감독관은 몇 명이 있는지 상관없으므로 (a[i] - b) / c만큼 있으면 됩니다. * (a[i] - b) % c가 나머지가 있으면(양수면) 부 감독관을 한 명 더 배치해야합니다. * 총, 부 감독관이 감시가능한 학생 수 가 각각 ..
(C++) - 백준(BOJ) 17827번 : 달팽이 리스트 https://www.acmicpc.net/problem/17827 17827번: 달팽이 리스트 첫째 줄에 노드의 개수 N(2 ≤ N ≤ 200,000), 질문의 횟수 M(1 ≤ M ≤ 200,000), N번 노드가 가리키는 노드의 번호 V(2 ≤ V ≤ N)가 공백으로 구분되어 주어진다. 둘째 줄에 N개의 정수 C1, C2, …, CN이 공백 www.acmicpc.net 순회하는 공식을 찾는 수학문제였습니다. 풀이방법 1. 1번노드를 제외한 2번부터 사이클의 첫 번째이므로 v의 값을 입력받은뒤 1을 빼줘야 합니다. 그 외 적절히 입력받습니다. 2. k < n인 경우에는 사이클을 순회하지 않으므로 그대로 k번째 값을 출력합니다. 이외의 경우에는 사이클을 적절히 돌게 됩니다. 사이클에 해당하지 않는 노드의..
(C++) - 백준(BOJ) 21739번 : 펭귄 네비게이터 https://www.acmicpc.net/problem/21739 21739번: 펭귄 네비게이터 펭귄은 현재 ($1$, $1$)에 있다. 펭귄은 집까지 가고 싶다. 펭귄의 집은 ($2$, $N$)이다. 하지만 누군가에 의해 얼음길이 다 깨져 집에 갈 수 없게 되었다. 현진이는 펭귄들을 위해 얼음길을 만들어줄 www.acmicpc.net 카탈란 수열의 값을 구하는 문제였습니다. 접근법이 너무 어려워 아래 해설을 참조하게 되었습니다. 응용하기 너무 어렵네요 ㅠㅠ https://www.acmicpc.net/board/view/68251 글 읽기 - 제1회 숙명여자대학교 교내 알고리즘 경진대회 (SMUPC) 종료 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net Code #include usi..