반응형 수학7 [cpp 알고리즘] 백준 3474 교수가 된 현우 [백준] 3474 교수가 된 현우 cpp(c++) 풀이알고리즘: 수학, 정수론https://www.acmicpc.net/problem/3474문제 요약- 자연수 N이 주어지면 N!의 오른쪽 끝에 있는 0의 개수를 구하기풀이 정리- 2의배수*5의배수로 0이 생기는데, 2의 배수는 많기 때문에 5의 배수의 최대 개수를 구하면 된다. ex) 60!의 경우는 5의 배수(60/5 =12)와 25의 배수(60/25=2)의 개수를 합친 12+2=14 로 답이 14가 나온다.C++ 코드#include #define ll long longusing namespace std;ll T, N;int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0.. 2024. 11. 10. [cpp 알고리즘] 백준 17827 달팽이 리스트 [백준] 17827 달팽이 리스트 cpp(c++) 풀이알고리즘: 수학, 구현https://www.acmicpc.net/problem/17827문제 요약- 선형 단방향 연결리스트로 1번 부터 N번 노드까지 연결되어 있다.- 이 때, N번 노드가 1번 노드를 제외한 임의의 노드를 가리켜 사이클을 생기는 연결 리스트를 이룬다. - 이 때 K번 노드에는 어떤 값이 있을지 구하는 문제이다. 풀이 정리- 연결리스트가 된 이후에 K번째 값들을 나열해 보았고, 아래와 같은 수식을 얻을 수 있었다.- k번째 값이 (V-1)보다 작으면 (=연결되지 않는 부분)이면 해당 인덱스의 값을 출력해주면 된다.- 그 외의 경우는, 반복되기 때문에 V번째로부터 (K-(V-1)) % (N-(V-1)) 만큼 떨어져 있는 값을 출력해주면 .. 2024. 11. 9. [cpp 알고리즘] 백준 20152 Game Addiction [백준] 20152 Game Addiction cpp 풀이알고리즘: 수학, 다이나믹 프로그래밍(DP), 조합론https://www.acmicpc.net/problem/20152문제 요약- 집의 좌표(H,H) 에서 PC 방의 좌표(N,N)가 주어진다.- 좌표평면(x,y)에서 y>x인 곳은 갈 수 없다. - 집에서 PC방까지 경로의 개수를 구해야 한다. (단, 상하좌우 방향으로 이동할 수 있고 한 번 이동할 때 거리는 1이다. 또한 항상 최단 경로로 움직인다.)풀이 정리- 최단경로라는 말에 처음에는 bfs로 생각을 하다가, 뒤로 갈 수록 너무 많고 생각보다 규칙이 보여서 dp로 접근했다.- 아래 사진처럼 예제들을 직접 따라 그려보면 어떻게 구하는지 바로 알 수 있다. (지금 보니까 집이랑 PC방 위치를 반대.. 2024. 7. 15. [cpp 알고리즘] 백준 1629 곱셈 [백준] 1629 곱셈 cpp 풀이 수학, 분할 정복을 이용한 거듭제곱 https://www.acmicpc.net/problem/1629 문제 요약 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어졌을 때, A를 B번 곱한 수를 C로 나눈 나머지를 출력하면 된다. 풀이 정리 - 분할 정복을 활용하여 지수를 나누어 주면 된다. (1) 지수가 0인 경우 -> X^0 = 1 이므로 1을 리턴해준다. (2) 지수가 짝수인 경우 -> X를 X/2로 나누어서, 계산한 두 값을 곱해준다. (3) 지수가 홀수인 경우 -> X를 X/2로 나누고, 계산한 두 값과 밑을 한 번 더 곱해준다. - 예제에 나왔던 A=10, B=11로 예를 들어 보면, 1. 가장 나이브하게 먼저 생각나는 방법은 for문을 이용하여 .. 2023. 11. 10. 이전 1 2 다음 반응형