본문 바로가기

백준

(5)
백준 [10986] 나머지 합(Python3) 문제 링크 : https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 지문 해석 연속된 부분 구간의 합을 보고 바로 누적합을 써야 한다는 것을 알았다. 완전 탐색 누적합 배열이 있을 때, 한 누적합을 기준으로, 그 이전 위치의 누적합과 차를 비교해 M의 배수가 되는 쌍을 센다. -> O(N^2)로 시간 초과 완전 탐색 최적화 - 탐색 범위 줄이기 누적합은 계속 커진다는 점을 이용해 두 누적합의 차가 M보..
백준 [2589] 보물섬 c++ 기준 단순 bfs로 푼다면 100~120ms의 시간으로 풀 수 있지만, 그래프 지름에 대해서 생각해 본다면 더욱 빠르게 풀 수 있다. (20ms정도) 1이 육지, 0이 바다라고 하고 지도가 다음과 같다면 3가지 조건에 대해 생각해볼 수 있다. 1. 어떤 지점의 위, 아래에 땅이 있을 때 빨간 곳처럼 위 아래로 땅이 있는 경우, 해당 지역은 단순히 거쳐가는 지역이된다 실제로 찍어보면 알겠지만 해당 지점에서 시작한 거보다 그 위 아래에서 시작한게 더 크다 2. 어떤 지점의 좌우에 땅이 있을 때 이 부분도 마찬가지로 좌우에서 시작한게 해당 지역에서 시작한 거보다 더 크다 3. 상하, 좌우가 아닌 2갈래로 퍼지는 곳 위 오른쪽, 위, 왼쪽 처럼 x,y 축으로 한 방향씩 갈라지는 곳이다 사진처럼 아래, 오..
백준 [12865] 평범한 배낭 유명한 배낭 문제 영문판 위키에 자세하게 나와있지만, 그림 설명은 없다. en.wikipedia.org/wiki/Knapsack_problem Knapsack problem - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Problem in combinatorial optimization Example of a one-dimensional (constraint) knapsack problem: which boxes should be chosen to maximize the amount of money while still keeping the o en.wikipedia.org 캐시의 크기를 다음과 같이 ..
백준 [2580] 스도쿠 이전 백트래킹 문제들이 일차원 배열을 이용해, 한 줄씩 처리하는 게 가능했다면, 이 문제는 이 방법이 먹히지 않았다. 특히, 입력을 2차원 배열의 스도쿠 판만 받아야 한단 생각을 해서 많이 꼬이고 헤맸다. 이 문제에서 우리가 고려해야 할 사항은 3가지다. 1. 가로줄 2. 세로줄 3. 3*3 정사각형 맨 처음에 스도쿠 판에 저장된 데이터만 가지고 올바른 값이 들어가있는지 검증하는게 무척 어려웠다. 이전에 풀었던 N-Queen 방식대로하면 세로줄까진 어찌어찌 해결해도, 3*3 정사각형에서 매번 헤맸다. 해결방법은 생각보다 간단했다. 입력을 받고나면, 해당 위치의 가로, 세로 3*3 칸에 입력받은 숫자가 사용됐다는 것만 표시하면 된다. 그림으로 설명하자면 이렇게 입력을 받는다면 가로의 정보를 저장하는 배열엔..
백준 [9663] N-Queen 백트래킹을 이용한 문제. 생각한 방법은 3가지였다. 3번째 방법이 내가 적용한 풀이다. 1. 2차원 배열을 선언해, 퀸이 배치 될 때, 퀸의 경로에 1을 더해서, 다음 퀸이 이 자리에 오지 못하게 한다. 만약, 다른 퀸의 경로하고 겹치는 경우 1을 또 더해준다. 아래 그림이 예시다. 하지만, 이렇게 되면, 퀸 배치를 옮길 때, 복구 작업도 해줘야 하기 때문에, 시간이 오래걸리고, 코드도 깔끔하게 나오진 않았다. 2. 매 탐색마다, N 크기를 1씩 줄이기 어떤 자리에 퀸이 들어왔단 것은 해당 행과 열엔 퀸이 들어오지 못하니, 다음 재귀함수에선 (N-1 * N-1)만큼의 크기를 검사하는 방식 여기서 문제는 위의 그림에서 보듯이, 2번째 퀸이 3번째 열에 배치되면, 2번째 열에 퀸을 배치할 수 있음에도 불구하..