https://www.acmicpc.net/problem/10836 10836번: 여왕벌 입력의 첫 줄에는 격자칸의 가로와 세로 크기 M(2 ≤ M ≤ 700)과 날짜 수 N(1 ≤ N ≤ 1,000,000)이 자연수로 주어진다. 첫날 아침의 애벌레 크기는 모두 1이므로 입력에 주어지지 않는다. 다음 N개의 www.acmicpc.net 구현 문제다. 문제 그대로 구현하면 되는 문제라 특별히 설명할 부분은 없다. 문제에서 특이한 점이 있다면 왼쪽 위쪽 테두리의 성장 값을 줄 때 각각의 값을 주는 게 아니라 각각의 수가 연속된 개수를 준다는 점이었따. 이 부분을 어떻게 해결할 까 하다가 바로바로 값에 넣어주려 했는데 반복문은 한 번 덜 돌지라도 코드 자체가 너무 비효율적이라 일차원 배열을 생성했다. 처참하게..
구현
https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 구현 문제다. 모든 경우의 수를 고려해서 경사로를 놓을 수 있는지 확인하면 된다. #include using namespace std; int arr[100][100]; int visit[100][100]; int main() { // 입출력 속도를 단축시키기 위함 ios::sync_with_stdio(0); cin.tie(0); int n, l, re = 0;cin >> n >> l; for (int i = 0; i ..
https://www.acmicpc.net/problem/12764 12764번: 싸지방에 간 준하 첫째 줄에 사람의 수를 나타내는 \(N\)이 주어진다. \((1 \le N \le 100,000)\) 둘째 줄부터 \(N\)개의 줄에 걸쳐서 각 사람의 컴퓨터 이용 시작 시각 \(P\)와 종료 시각 \(Q\)가 주어진다. \((0 \le P \lt Q \le 1,000 www.acmicpc.net 우선순위 큐와 구현 문제다. 우선순위 큐에 입력 받은 값을 넣어 오름차순으로 정렬되게끔 했다. 2차원 배열을 이용해서 컴퓨터 사용이 끝나는 시간과 몇 명이 이용했는지 저장했다. 반복문으로 컴퓨터를 사용하지 않았거나, 사용 기록이 있으나 이미 퇴실한 자리를 찾아 저장했다. #include #include using..
https://www.acmicpc.net/problem/1938 1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4 ≤ N ≤ 50) 주어진다. 이어서 그 지형의 정보가 0, 1, B, E로 이루어진 문자열로 주어진다. 한 줄에 입력되는 문자열의 길이는 N이며 입력 문 www.acmicpc.net BFS와 구현 문제다. BFS와 동일하게 진행하고, 움직일 때 범위 검사만 추가해서 했다. 회전에 대해서는 방문 배열을 3차원으로 생성해 가로일 때 방문과 세로일 때 방문을 구분해서 체크했다. 회전시 계산이 편하도록 3칸 중 중간 칸을 기준으로 삼았다. #include #include using namespace std; // 상하좌우 탐색을 위함 int dr[4] = { ..
https://www.acmicpc.net/problem/10800 10800번: 컬러볼 첫 줄에는 공의 개수를 나타내는 자연수 N이 주어진다(1 ≤ N ≤ 200,000). 다음 N개의 줄 중 i번째 줄에는 i번째 공의 색을 나타내는 자연수 Ci와 그 크기를 나타내는 자연수 Si가 주어진다(1 ≤ Ci ≤ N www.acmicpc.net 누적 합과 구현 문제다. 자신보다 사이즈가 큰 공을 찾기 위해서는 정렬이 필요하다고 생각했다. 이중 반복문으로 하나하나 검사를 하면 시간초과가 날 것 이기 때문에 효율적인 방법을 찾으려 했다. 처음에는 반복문 하나에 누적합을 구하는 방법을 사용했다. for (int i = 1; i n; for (int i = 1; i > c >> s; arr[i] = { s, c, i..
https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 구현 문제다. 마법사 상어와 파이어볼과 비슷한 문제다. https://abbiddo.tistory.com/19 큐나 벡터 하나만을 사용하면 이동한 상어에 대해 또 이동을 할 수 있다는 반례가 생긴다. 상어가 어디에 위치했는지 알기 위한 벡터와 현재 위치해 있는 상어들에 대한 정보를 담은 큐를 사용했다. 상어가 동일한 곳에 도착하면 큰 상어만 남아야 하는데 이동하자마자 큐에도 넣..