본문 바로가기

수학

(20)
[백준 / BOJ] 1629 곱셈 문제 출처 : www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net a를 b제곱한 수에 c를 나눈 나머지를 구하는 문제다. 풀이 B의 최댓값이 21억이므로 반복문으로 제곱을 해주면 총 21억번 반복을 하게되어서 시간초과가 난다. 분할정복과 수학공식을 이용해서 시간을 최소화해 구해야하는 문제였다. a의 b제곱 = a의 b/2제곱 * a의 b/2제곱 을 사용한다. 단, 지수가 홀수일때는 a의 b제곱 = a의 b/2제곱 * a의 b/2제곱 * a를 해주는것에 유의해야한다. 이해를 돕기위해 위 그림을 보자. 2^8을 계속해서 공식을 사..
[백준 / BOJ] 1241 머리 톡톡 문제 출처 : www.acmicpc.net/problem/1241 1241번: 머리 톡톡 엄지 생일 기념으로 학생들은 파티를 하고 있다. 엄지는 N(1≤N≤100,000)명의 학생에게 1부터 N번까지 차례대로 번호를 부여하였고 그들을 순서대로 빙 둘러앉아 원을 만들게 하였다. (즉 i번째 학� www.acmicpc.net N명의 학생이 원형으로 앉아있다. 1번 학생부터 N번 학생까지 순서대로 일어나면서 자신이 쓴 숫자가 다른사람의 숫자의 배수라면 머리를 한대친다. 이때 각학생이 머리를 총 몇번치는지 구하는 문제이다. 풀이 완전탐색으로 풀게되면 100001 * 50000이라 시간초과가 난다. arr배열을 만들어 해당 숫자가 나온 횟수를 저장해주고, 약수가 되는 값의 범위를 찾아 풀었다. i번 학생이 머리에..
[백준 / BOJ] 1105 팔 문제 출처 : www.acmicpc.net/problem/1105 1105번: 팔 첫째 줄에 L과 R이 주어진다. L은 2,000,000,000보다 작거나 같은 자연수이고, R은 L보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net L과 R을 입력받았을때, L보다 크거나 같고, R보다 작거나 같은수중 8이 최소한으로 들어가는수를 찾으면된다. 풀이 R의 최댓값이 20억이라 완전탐색으로 찾을려하면 시간초과가 난다. 8의 개수를 찾아야 하는것 이므로 L과 R의 자릿수가 같다면, 앞에서 부터 탐색하며 L과 R의 해당 자릿수가 8로 같을때를 찾아주면된다. 예제의 경우 8808 8880 은 천의자리수와 백의자리수가 모두 8로 같아서 최소한으로 나올수있는 8의 갯수는..
[백준 / BOJ] 14650 걷다보니 신천역 삼 (small) 문제 출처 : www.acmicpc.net/problem/14650 14650번: 걷다보니 신천역 삼 (Small) 욱제는 ‘삼’이란 음절을 참 좋아한다. 인삼, 홍삼, 해삼, 삼성, 이춘삼(李春森), 삼식이, 삼시세끼, ㄴㄴ 그거 안 삼, 삼과 죽음, 알았삼, 금강삼도 식후경, 걷다보니 신천역 삼, 그리고 특히 일�� www.acmicpc.net N을 입력받았을때, 0 , 1 , 2만을 가지고 N자리 3의 배수를 만들어야한다. N = 1 이라면 0 , 1 , 2 로 만들수있는 3의 배수가 없으니 0 출력 N = 2 라면 1 2 2 1 두가지를 만들수있다. (현재 숫자에 더하는게 아니라 숫자를 이어붙이는 형식임에 주의하자) 풀이 완전 탐색 문제다. 3의 배수가 갖는 규칙을 찾는게 중요했는데, 3의 배수라..