본문 바로가기

분류 전체보기76

[BOJ 2869] 달팽이는 올라가고 싶다 https://www.acmicpc.net/problem/2869 불러오는 중입니다... 위 문제에서 달팽이는 V미터만큼 올라가야하는데 낮에는 A미터만큼 올라가고, 밤에는 B미터만큼 미끄러진다. 그리고 정상에 올라간 후에는 미끄러지지 않는다. 즉, 정상에 오르기 전에는 하루에 (A-B)만큼 오른다는 말이다. 그러니까 정상에 올랐을 경우에는 미끄러지지 않기 때문에 (V-A)미터를 하루에 (A-B)만큼 올랐을 경우 며칠이 걸리는지를 구하고 하루를 더해주면 된다. 간단한게 (V-A) / (A-B)를 구하고 1을 더해주면 된다. 하지만 위 식에서 나머지가 있다면 아직 (V-A)만큼을 못 올랐기 때문에 1을 한 번 더 더해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include.. 2019. 3. 3.
[BOJ 2004] 조합 0의 개수 https://www.acmicpc.net/problem/2004 불러오는 중입니다... nCm에서 끝자리 0의 개수를 구하는 문제이다. nCm = 이다. 즉, (n!의 0의 개수 - (m!의 0의 개수 + (n-m)!의 0의 개수))) .........⑴ 를 구해야 한다. 끝자리의 0의 개수는 nCm이 인수로 10을 몇 개를 가지는지를 구해야 한다. 10 = 2 * 5이므로 2와 5의 개수를 구하면 된다. 팩토리얼에서 0의 개수는 [팩토리얼 0의 개수]를 통해 구하면 된다. 하지만 위와는 다르게 5의 개수뿐만 아니라 2와 5의 개수를 모두 구해야 한다. 왜냐하면 위에서는 N! 하나만 구하면 되지만, 이 문제에서는 ⑴식에서 뺼셈이 존재하기 때문이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 .. 2019. 3. 3.
[BOJ 1676] 팩토리얼 0의 개수 https://www.acmicpc.net/problem/1676 불러오는 중입니다... N!의 뒤의 0의 개수는 인수로 10을 몇 개로 가지고 있는지를 구하면 된다. 10 = 2 * 5이므로 인수로 2와 5를 몇 개를 가지고 있는지를 구하고 더 작은 수를 출력하면된다. 하지만 2보다는 항상 5가 많기 때문에 인수로 5를 몇 개 가지고 있는지만 구하면 된다. 이는 N을 5, 5^2, 5^3, 5^4.....으로 나눈 값을 모두 더하면 된다. 각 수로 나눈 때마다 5가 몇 개 있는지 5^2이 몇 개 있는지 알 수 있다. 이는 N >= 5^n까지 구하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include int main() { int N; scanf("%d", .. 2019. 3. 3.
[BOJ 2903] 중앙 이동 알고리즘 https://www.acmicpc.net/problem/2903 2903번: 중앙 이동 알고리즘 문제 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. 외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다. 알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다. 정사각형의 각 변의 중앙에 점을 하나 추가한다. 정사각형의 중심에 점을 하나 www.acmicpc.net 다음 단계로 넘어갈 때마다 한 변(가장 큰 사각형의 한 변)에서 각 변에 점이 찍히니까 N 단계의 한 변의 점의 개수는 N-1 .. 2019. 3. 3.