본문 바로가기

Solved.ac26

[BOJ] 백준 1676번: 팩토리얼 0의 개수 www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net N! 은 1x2x3x4 x... N으로 곱하는 과정에서 10의 배수가 생길 때마다 0이 생깁니다. 다시 해석해보면 N!을 곱하는 전체 과정을 소인수 분해하여 2와 5의 개수를 찾으면 맨뒤에 오는 연속된 0의 개수를 알 수 있습니다. 좀 더 간단화시키면 2의 배수는 5의 배수보다 항상 많으므로 N! 를 소인수 분해하여 5의 개수를 찾으면 됩니다. 5, 10, 15, 20, .... 은 5를 1개 가지고 있습니다. 25, 50, 75, .... 는 5를 2개 가지고 있습니다. 125, 250, 375.. 2020. 9. 7.
[BOJ] 백준 11726번: 2xn 타일링, 타일링 문제 www.acmicpc.net/submit/11726/21279055 로그인 www.acmicpc.net 타일링 문제는 동적 계획법을 접하면 입문 문제로 간단한 점화식으로 풀리는 문제입니다. 타일은 1x2 크기와 이것을 회전한 2x1 타일이 있으며, 길이 n이 주어질 때 2 x n 직사각형을 채울 수 있는 경우의 수를 찾아야 합니다. 아래는 n이 각각 1, 2, 3 인 경우를 보여줍니다. 각 경우에서 보면 빨간 블록은 이전 단계들의 블록 모양이며 파란색은 현재 단계에 새로 추가된 블록입니다. 여기까지만 보면 점화식을 d[i] = d[i-1] + d[i-2]로 유추해볼 수 있습니다. 좀더 정확하게 알아보기 위해 n이 4인 경우를 보면 n이 2인 경우 + n이 3인 경우의 합이 됩니다. 점화식은 피보나치 형태.. 2020. 9. 7.
[BOJ] 백준 5525번: IOIOI www.acmicpc.net/problem/5525 5525번: IOIOI 첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. (1 ≤ N ≤ 1,000,000, 2N+1 ≤ M ≤ 1,000,000) www.acmicpc.net 문자열을 탐색하면서 I 문자가 최대 몇 번째 Pn의 마지막 I에 해당하는지를 찾으면 쉽게 풀수있습니다. 만약 IOIOIOI 에서 세 번째 I에 대하여 str[i-2]가 I고 str[i-1]가 O이므로 P[i] = P[i-2] + 1을 갖습니다. 예제로 주어진 OOIOIOIOIIOII 의 P[1..N] = { 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, 0, 1, 0} 처럼 구해집니다.이렇게 구한 P에서 길이 M보다 큰 값을 같은.. 2020. 9. 7.
c++ sort 함수 커스텀, 특정 조건 정렬, 우선순위 큐 정렬 기본적인 삽입 정렬 및 선택 정렬은 아래 링크를 참조해주세요 2020/10/21 - [알고리즘] - 삽입 정렬 (InsertionSort), 선택 정렬 (Selection Sort) 비교 및 c언어 구현 삽입 정렬 (InsertionSort), 선택 정렬 (Selection Sort) 비교 및 c언어 구현 삽입 정렬과 선택 정렬은 O(N^2)의 비효율적인 정렬 방법입니다. 효율적인 정렬을 구현하고 싶으시면 아래 링크를 봐주세요 2020/08/17 - [알고리즘] - 머지 소트, 머지 소트 트리 및 관련 백준 문제 �� seongjuk.tistory.com 알고리즘 문제를 해결하다보면 algorithm 헤더의 sort 함수를 유용하게 사용합니다. 이 sort 함수를 기존(Default) 정렬 방식이 아닌 .. 2020. 9. 7.