본문 바로가기

Algorithm/Math

(101)
(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 ..
(C++) - 백준(BOJ) 12840 : 창용이의 시계 https://www.acmicpc.net/problem/12840 12840번: 창용이의 시계 창용이는 여름을 맞이하여 ‘정창용’ 이름이 쓰인 한정판 섬머 에디션 시계를 구입했다. 왠지 오늘은 001도 가고 싶지 않고 시계를 가지고 놀고만 싶다. 우린 방에 있는 창용이가 시계를 가지고 www.acmicpc.net 시간에 대한 개념을 이용한 구현 + 수학 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 시간 h, 분 m, 초 s, 쿼리 수 q, 명령어 t, 명령어가 1또는 2인 경우 입력받을 c, 현재 시간초를 저장할 sec를 선언 후 적절히 입력받습니다. 📔 풀이과정 입력받은 시, 분, 초를 모두 초에 대해 환산하고 sec에 값을 저장합니다. 23시 59분 59초인 상황에서 1초가 지나면 다음날이 되는 ..
(C++) - 백준(BOJ) 9298 : Schronisko https://www.acmicpc.net/problem/8760 8760번: Schronisko Kiedy Hektor zajmował się realizacją projektu HektorJudge, jego kolega Wiktor uznał, że życie nie powinno składać się wyłącznie z siedzenia przy komputerze i wybrał się na wycieczkę w góry. Kiedy wieczorem dotarł do schroniska ze zdziwieni www.acmicpc.net 공식을 찾아 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 테스트 케이스 수 t, 열 w, 행 k를 선언 후 t에 입력을 받습니다. 이 후 while l..
(C++) - 백준(BOJ) 8678 : Zbiór https://www.acmicpc.net/problem/8678 8678번: Zbiór Pierwszy wiersz standardowego wejścia zawiera jedną liczbę całkowitą z (1 ≤ z ≤ 106), oznaczającą liczbę zestawów danych. W n kolejnych wierszach znajdują się opisy kolejnych zestawów. Każdy wiersz zawiera dwie liczby całkowite a, b (1 www.acmicpc.net 배수의 성질을 이용하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 테스트 케이스의 수 z, 두 정수 a와b를 선언한 후 z에 입력을 받고 while loop를 수행합니다..
(C++) - 백준(BOJ) 8658 : Liczba https://www.acmicpc.net/problem/8658 8658번: Liczba Mamy daną liczbę całkowitą n, dla której chcemy znaleźć dwie wartości: najmniejszą oraz największą liczbę całkowitą, z przedziału od 1 do n, które nie są dzielnikami liczby n. www.acmicpc.net 수학 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 3이상 정수 n, 정답을 출력할 변수 minN, maxN을 선언한 후 n을 입력해줍니다. 📔 풀이과정 10억까지 O(n)으로 탐색한다면 10초로 시간초과가 뜨게 됩니다. 따라서 하나라도 나누어 떨어지지 않는 수를 찾았다면bre..