https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 그리디 문제다. 두 사람의 두 점수를 비교 했을 때 한 점수는 낮고 한 점수는 높아야 한다. 두 등수 중 하나를 기준으로 정렬하고 다른 등수가 전 사람보다 높은지 판별하면 된다. 등수는 중복되지 않으니 정렬을 사용하지 않고 하나의 등수를 인덱스로 사용해도 된다. #include #include using namespace std; pair arr[100000]; int mai..
전체 글
GIthub - https://github.com/abbiddohttps://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 구현 문제다. 깊게 생각해야 할 부분은 없었고 문제대로 바로 구현했다. 방향이 바뀌는 점을 어떻게 처리해야 하는지 고민이었다. 4방향 좌(1) 하(2) 우(3) 상(4) 으로 나눠서 하나하나 구현했다. 방향이 변해도 흩어지는 비율은 같기 때문에 해당 배열은 한 번만 선언했다. 토네이도는 1칸 (방향전환) 1칸(방향전환) 2칸 (방향전환) 2칸 (방향전환) 3칸 ....
https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 구현 문제다. 나도 내가 뭘 했는지 모르겠다. #include #include #include using namespace std; struct fire { int r; int c; int m; int s; int d; }; vector board[51][51]; vector visit; int v[51][51]; int N, M, K; int main() ..
https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net DP 문제다. 이전 값들의 접근으로 배열을 이용했다. 입력 받은 가치들을 배열에 저장하고 그 값들을 탐색했다. 동전의 가치를 더해서 원하는 수를 만들 수 있기 때문에 dp[원하는 값 - 가치] + 1을 하면 그 값을 만들기 위한 동전의 수를 알 수 있다. 모든 가치의 값들을 탐색하면서 그 중 최솟값을 찾는다. 주의할 점은 1. 배열의 범위를 벗어나선 안된다. 즉, 원..
https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 구현 문제다. 해당 문제는 시간제한이 짧다. 시간제한을 신경써서 최대한 간단하게 작성하려기보단 구현을 먼저하고 시간제한을 신경쓰려고 했다. 한 칸에 여러 나무가 존재할 수 있다는 점이 생각보다 까다로웠다. 나무의 위치를 입력받는 배열로 [100][3]으로 2차원 배열 / [10][10][102]로 3차원 배열 두 가지를 생각했다. 2차원 배열은 각각의 값을 저장하는 것이고, 3차원..
https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net BFS 문제다. 문제를 해결하기 위해 돌아온 길이 많아서 시행착오는 후에 작성하겠다. 문제 해결은 일반 BFS에 8방향 검사를 추가로 시행했다. 방문 배열을 3차원으로 설정해 8방향 이동 능력을 몇 번 사용했는지 체크했다. 간단한데도 이 방법을 생각해내는데 오래 걸렸다... 그리고 이 문제에서 오류가 발생하기 쉬운 점은 입력이 세로 가로가 아닌 가로 세로인 점이다. 세로를 먼저 입..