문제 https://www.acmicpc.net/problem/27648 27648번: 증가 배열 만들기 첫째 줄에 $N$, $M$, $K$가 주어진다. $\left(1 \le N , M \le 1\,000,1 \le K \le 100\,000 \right)$ www.acmicpc.net 풀이 (1, 1)부터 출발해 (N, M)까지 도달할 때 오름차순이게 만들어야 하는 문제 어차피 이동은 아래, 오른쪽이므로 현재 위치에서 +1을 해주면 어렵지 않게 구할 수 있다. 해결법이 잘 떠오르지 않으면 오래 잡고 있을 수도 있는 문제 제출 코드 # 2023/03/04 Ad-Hoc # https://www.acmicpc.net/problem/27648 N, M, K = map(int,input().split()) r..
문제 https://www.acmicpc.net/problem/1245 1245번: 농장 관리 첫째 줄에 정수 N(1 < N ≤ 100), M(1 < M ≤ 70)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄마다 격자의 높이를 의미하는 M개의 정수가 입력된다. 격자의 높이는 500보다 작거나 같은 음이 아닌 정수 www.acmicpc.net 풀이 독해력을 시험받는 문제 "산봉우리는 같은 높이를 가지는 하나의 격자 혹은 인접한 격자들의 집합으로 이루어져 있다."는 현재 구역을 x, y로, 인접한 구역을 nx, ny로 정의할 때 아래와 같은 의미이다. abs(x - nx)
문제 https://www.acmicpc.net/problem/5063 5063번: TGN 첫째 줄에 테스트 케이스의 개수 N이 주어진다. 다음 N개의 줄에는 3개의 정수 r, e, c가 주어진다. r은 광고를 하지 않았을 때 수익, e는 광고를 했을 때의 수익, c는 광고 비용이다. (-106 ≤ r,e ≤ 106 www.acmicpc.net 풀이 광고를 하는 게 좋은지, 안 하는 게 좋은지 비교하는 문제 광고를 안 할 때의 수익과 광고를 한 수익 - 비용을 비교해 본다. 제출 코드 # 2023/02/28 수학 # https://www.acmicpc.net/problem/5063 # 어느게 이득인지만 알면 된다. for _ in range(int(input())): r, e, c = map(int,in..
문제 https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 풀이 직사각형을 만들기 위한 4번째 점의 좌표를 구하는 문제 직사각형을 만들기 위한 조건을 고려해 본다면 쉽게 구현 가능하다. 제출 코드 # 2023/02/26 구현 # https://www.acmicpc.net/problem/3009 x = [] y = [] for _ in range(3): a, b = map(int,input().split()) x.append(a) y.append(b) # 하나 밖에 없는 것이 정답이 된다. if x.count(min(x)) == 1..
문제 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 풀이 S의 값을 만들 수 있는 서로 다른 수 N을 구하는 문제 먼저 1부터 N까지의 합을 구해야 하기 때문에 공식을 사용한다. 1부터 n까지의 합 : (n * (n + 1)) / 2 위 공식을 적용했을 때 해당 값이 S를 넘어갔다면 새로 들어온 값을 포함하고, 기존에 있던 값을 빼면 S를 만들 수 있으므로 N-1개의 서로 다른 수로 만들 수 있음을 알 수 있다. ex) S = 11, n_arr = [1, 2, 3, 4, "5"]이다. 그렇다면 n_arr에서 4를 제거하면 n_arr = [1, 2, 3, 5]이..
문제 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 풀이 적절한 집의 위치에 공유기를 C개 설치하고 가장 인접한 부분의 최댓값을 구하는 문제 이 문제를 해결하기 위해서는 이분 탐색을 이용해야 하는데, 인덱스 값이 아닌 숫자 값으로 구해야 한다. 이분 탐색 수행시 cnt가 더해지는 조건은 현재의 위치(data[i])가 최근 위치와 mid((start + end) // 2)의 합보다 크거나 같은..
문제 https://www.acmicpc.net/problem/9944 9944번: NxM 보드 완주하기 N×M 보드 위에서 할 수 있는 게임이 있다. 보드는 크기가 1×1인 정사각형 칸으로 나누어져 있다. 보드의 각 칸은 빈 칸 또는 장애물이다. 장애물은 아래 그림에선 어두운 사각형으로 표시되어져 www.acmicpc.net 풀이 구현하는 문제는 사실하라는 대로만 하면 문제를 해결할 수 있지만, 자세한 부분에서 문제가 발생하기 마련이므로 조건에 대한 정확한 정의가 필요하다. 아래에 이 문제를 해결할 때 고려해 볼 법한 사항을 작성해 보았다. 보드 위에 공을 두고 벽이 아닌 모든 칸을 방문할 수 있다면 이동한 경우의 최솟값으로 정답을 출력하고, 그렇지 못한다면 -1을 출력한다. 종료하는 조건이 따로 없으..
문제 https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 풀이 움직이는 방향이 주어지고 그에 맞게 킹과 돌을 움직이는 문제 문제를 해결하려면 아래 두가지 경우를 고려해야 한다. 킹을 움직였는데 범위 밖인 경우 킹을 범위 내에서 움직이고, 그 자리에 돌이 있어 돌도 같은 방향으로 움직였을 때 범위 밖인 경우 위의 두 가지 경우를 잘 고려한다면 문제를 해결할 수 있다. 제출 코드 # 2023/02/21 구현 # https://www.acmicpc.net/prob..