알고리즘 썸네일형 리스트형 [알고리즘] (구현) 시간.cpp (from 이코테) 문제 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하시오. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다. 00시 00분 03초 00시 13분 30초 반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다. 00시 02분 55초 01시 27분 45초 입력 첫째 줄에 정수 N이 입력된다. (0 min = 0; this->sec = 0; } std::string time::getter(void) { std::string str = std::to_string(hour)+std::to_string(min) +std::to_string(sec); r.. 더보기 [알고리즘] dfs 깊이 우선 탐색 def dfs(graph, v, visited): visited[v] = True print(v, end=' ') for i in graph[v]: if not visited[i]: dfs(graph, i, visited) graph = [ [], [2,3,8], [1,7], [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ] visited = [False]*9 dfs(graph, 1, visited) 파이썬으로 깊이 간단하게 깊이 우선 탐색을 구현해 봤습니다. 더보기 [알고리즘] 큰 수의 법칙 /* 다양한 수로 이뤄진 배열이 있을 때 주어진 수들을 M번 더해 가장 큰 수를 만드는 법칙. 단, 배열의 특정한 인덱스에 해당하는 수가 K번을 초과해 더해질수 없다. ex) arr = {2,4,5,4,6}, M = 8, K = 3 -> 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5 = 46 입력 조건 첫째 줄에 N(2 K; intarr[N]; for (int i=0; i> arr[i]; } std::sort(arr, arr + N); intfirst = arr[N - 1]; intsecond = arr[N - 2]; intres = 0; inti=0; while (1) { for (int j=0; j 더보기 [알고리즘] fibonacci (boj-2747, 2749) 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 n번째 피보나치 수를 1,000,000으로 나눈 나머지를 출력한다. #include #incl.. 더보기 [알고리즘] CCW (기하, boj-11758) 문제 2차원 좌표 평면 위에 있는 점 3개 P1, P2, P3가 주어진다. P1, P2, P3를 순서대로 이은 선분이 어떤 방향을 이루고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다. 출력 P1, P2, P3를 순서대로 이은 선분이 반시계 방향을 나타내면 1, 시계 방향이면 -1, 일직선이면 0을 출력한다. #include structPoint { intx; inty; }; doubleget_dir(Point p1, Point p2, Point p3.. 더보기 이전 1 2 다음