본문 바로가기

Algorithm/Math

(97)
(C++) - 백준(BOJ) 24860 : Couinting Antibodies https://www.acmicpc.net/problem/24860 24860번: Counting Antibodies Immunoglobulins also known as antibodies are protein molecules. Antibodies play one of the key roles in the immune reaction --- they detect harmful foreign agents --- bacteria or viruses --- and help to eliminate them. Every foreign molecule binds with uni www.acmicpc.net 간단한 수학 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 각 chain별 변수를 선언한 뒤 입력받습니다...
(C++) - 백준(BOJ) 1064 : 평행사변형 https://www.acmicpc.net/problem/1064 1064번: 평행사변형 평행사변형은 평행한 두 변을 가진 사각형이다. 세 개의 서로 다른 점이 주어진다. A(xA,yA), B(xB,yB), C(xC,yC) 이때, 적절히 점 D를 찾아서 네 점으로 평행사변형을 만들면 된다. 이때, D가 여러 개 나 www.acmicpc.net 점 사이의 거리, 기울기를 이용해 평행사변형 생성가능 여부를 결정하는 수학 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 점의 x,y좌표를 저장하기 위해 struct Point를 선언 합니다. Point a,b,c점을 선언 후 선분 ab, bc, ac를 의미하는 변수 abLen, bcLen, acLen, 둘레의 길이를 저장할 변수 len1, len2, len3을 선..
(C++) - 백준(BOJ) 12871 : 무한 문자열 https://www.acmicpc.net/problem/12871 12871번: 무한 문자열 첫째 줄에 s, 둘째 줄에 t가 주어진다. 두 문자열 s와 t의 길이는 50보다 작거나 같은 자연수이고, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 최대공약수 최소공배수를 구해 구현하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 s, t, ss, tt, 최소 공배수 lcmVal을 선언 후 문자열 s, t에입력받습니다. 📔 풀이과정 최소공배수만큼 문자열을 붙였을 때 둘이 같다면 무한대로 문자열을 늘려도 같습니다. * 단순히 s.size() * t.size()만큼 문자열을 붙인다면 메모리초과를 받게 됩니다. LCM(최소공배수) = 정수 a * 정수 b / GCD(최대공약수)(a, b)입니다...
(C++) - 백준(BOJ) 24723 : 녹색거탑 https://www.acmicpc.net/problem/24723 24723번: 녹색거탑 Naver D2를 아시나요? D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외 www.acmicpc.net 공식을 찾아 정답을 출력하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 거탑 높이 n을 선언 후 입력받습니다. 📔 풀이과정 높이가 1증가할때마다 각 칸에서 아래로 내려갈 수 있는 경우가 2가지씩 증가하는 규칙을 발견할 수 있습니다. 결국 전체 경우의 수는 2배씩 증가하는 특징을 가집니다. 📔 정답출력 1을 n bit만큼 왼쪽으로 이동한 결과를 출력합니다. ..
(C++) - 백준(BOJ) 13301 : 타일 장식물 https://www.acmicpc.net/problem/13301 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net 피보나치 수열을 구현하고 이를 응용해 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 항 n, 정답 ans, 피보나치 수열을 저장할 일차원 배열 fibo를 선언한 후 n에 입력받습니다. 📔 풀이과정 *n이 80까지이므로 해당 피보나치 수열 값을 구할 경우 2300조 정도로 int범위를 초과할 수 있습니다. long long으로 변수들을 선언해 줘야 합니다. x항의 피보나치 수열값을 반환하는 재귀함..
(C++) - 백준(BOJ) 24568 : Cupcake Party https://www.acmicpc.net/problem/24568 24568번: Cupcake Party A regular box of cupcakes holds 8 cupcakes, while a small box holds 3 cupcakes. There are 28 students in a class and a total of at least 28 cupcakes. Your job is to determine how many cupcakes will be left over if each student gets one cupcake. www.acmicpc.net 단순 산수 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 regular box의 개수 rBox, small box의 개수 sBox, 답을 ..
(C++) - 백준(BOJ) 14215 : 세 막대 https://www.acmicpc.net/problem/14215 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 삼각형의 성질을 이해해 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 세 막대의 길이를 저장할 일차원 배열 a를 선언 하고 입력받습니다. 📔 풀이과정 세 막대는 모두 줄일 수만 있습니다. 세 막대를 상기 이미지와 같이 적절히 줄여 만들기 위해서 삼각형의 성질을 알 필요가 있습니다. 가장 긴 변을 c라고 가정했을 때 삼각형이 만들어지기 위해서는 c >= a + b 어야 합니다. 1. 입력받은 배열 a를 오름차순으로 정렬합니다. 2. 정답은 두 가지의 경우로 나뉘게 됩니다. 2-1. c > a + b인 경우 막대기..
(Python) - 백준(BOJ) 23972 : 악마의 제안 https://www.acmicpc.net/problem/23972 23972번: 악마의 제안 첫째 줄에 악마가 제안한 정수 K와 N이 공백을 사이에 두고 주어진다. (1 ≤ K, N ≤ 200,000,000) www.acmicpc.net 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 k, n을 입력해줍니다. 📔 풀이과정 정답 x에 대해 손해보지 않는다면 다음 공식이 성립합니다. x >= (x - k) * n x에 대해 이항하면 x >= (k*n) / (n-1)가 됩니다. 답은 두 가지 경우가 됩니다. 1. n이 1일 때 무조건 손해보므로 -1을 출력합니다. 2. 아닌 경우 공식을 적용한 답을 출력합니다. 정수형이므로 나머지가 남는다면 1을 더해줍니다. 📔 정답출력 정답을 출력합니다. 📕 Code ..