알고리즘 문제풀이/백준134 [백준 5904] Moo 게임 www.acmicpc.net/problem/5904 5904번: Moo 게임 Moo는 술자리에서 즐겁게 할 수 있는 게임이다. 이 게임은 Moo수열을 각 사람이 하나씩 순서대로 외치면 되는 게임이다. Moo 수열은 길이가 무한대이며, 다음과 같이 생겼다. m o o m o o o m o o m o o o www.acmicpc.net 나이브하게 접근하면 tle 뜬다 변수를 사용하지 않고 같은 로직을 사용해도 런타임에러 뜬다...왜지.... 접근방법: k번째 moo 수열 S(k)은 크게 A, B, C 세 부분으로 구성된다. S(k-1 ) + (m + o * (k+2)) + S(k-1) k-1번째 수열이 앞뒤로 있고 중간에 m하나와 o가 k+2개 존재한다. 이 점을 사용하여 n의 값에 따라 적절한 위치로 n을.. 2020. 12. 12. [백준 1780] 종이의 개수 www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net 정답률도 비교적 높고 쉬웠던 문제! 종이가 정사각형 모양으로 계속 잘리므로 길이를 /3해서 진행해준다. #include #include using namespace std; int n; int arr[3000][3000]; int answer[3]; bool isValid(int len, int row, int col) { int cmp = arr[row][col]; for (int i = row; .. 2020. 12. 12. [백준 16505] 별 www.acmicpc.net/problem/16505 16505번: 별 출력 예제를 보고 별 찍는 규칙을 유추하여 별을 찍어 보자. www.acmicpc.net 재귀를 사용하는 문제이다. 규칙을 찾아보면 0에서 * 1에서 * * * 2에서 f(1) f(1) f(1) 임을 알 수 있다. 그냥 printf를 써버리면 저런 모양이 안나오고 배열을 사용해야 한다. 재귀함수를 호출할 때마다 별찍기를 시작할 (row, col)을 정해서 별을 찍도록 한다. row와 col은 제곱수만큼 늘어나므로 기저 조건 (0,0)에 2의 제곱수만큼 더한 시점이 n-1번째 별찍기를 시작하는 시점일 것이다. #include #include using namespace std; char board[1024][1024]; void Pri.. 2020. 12. 12. [백준 2167] 2차원 배열의 합 www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 누적합을 사용하여 시간을 줄이는 문제이다. (i,j)부터 (x,y)까지 다 더해도 상관없긴 하나 tle가 날꺼 같아서 col기준 누적합을 사용했다. i는 시작 row, x는 마지막 row col기준 누적합을 사용하므로 sum[?][y] - sum[?][j-1]을 해주면 각 row에 대한 합이 나온다. #include using namespace std; int m, n; int su.. 2020. 12. 11. 이전 1 ··· 21 22 23 24 25 26 27 ··· 34 다음