본문 바로가기

반응형

분류 전체보기

(168)
[모의 SW 역량테스트] 2117. 홈 방범 서비스 [모의 SW 역량테스트] 홈 방범 서비스 1. 이해하기 홈방법 서비스를 제공하기 위해서는 운영 비용이 필요하다. 운영 비용 = (K*K) + (K-1) * (K-1) 홈방범 서비스를 제공받는 집들은 각각 M의 비용을 지불할 수 있다. 보안회사에서는 손해를 보지 않는 한 최대한 많은 집에 홈방법 서비스를 제공하려고 한다. 손해를 보지 않는 다는 말은 이익이 0이어도 제공한다는 뜻이다. 홈방법 서비스를 제공 받는 집들의 수를 출력하는 문제. 완전탐색 문제. 2. 구현하기 서비스를 제공하는 크기가 K일 때, 운영 비용을 구한다. int get_oper_cost(int k) { return (k*k)+((k-1)*(k-1)); } 홈방범 서비스를 제공하는 시작 지점과 집과의 거리를 구해, 제공할 수 있는 집인지..
[모의 SW 역량테스트] 2112. 보호 필름 [모의 SW 역량테스트] 보호 필름 1. 이해하기 보호 필름의 셀들은 각 특성을 갖는다. 단면의 모든 세로방향에 대해서 동일한 특성의 셀들이 K개 이상 연속적으로 있는 경우에만 성능검사를 통과하게 된다. 성능 검사에 통과하기 위해서 약품을 사용한다. 약품은 막 별로 투입할 수 있으며 이 경우 투입하는 막의 모든 셀들은 하나의 특성으로 변경된다. 약품 투입 횟수를 최소로 하여 성능검사를 통과할 수 있는 방법을 찾는 문제. 2. 구현하기 보호 필름이 성능검사를 통과했는지 알아본다. bool is_passed() { for(int i = 0; i < W; i++) { bool flag = false; int cnt = 1; for(int j = 0; j < D-1; j++) { if(film[j][i] == ..
[모의 SW 역량테스트] 2115. 벌꿀채취 [모의 SW 역량테스트] 벌꿀채취 1. 이해하기 벌통에 있는 꿀을 두 명의 일꾼이 채취한다. 일꾼은 꿀을 채취할 수 있는 벌통의 수 M이 주어질 때, 각각의 일꾼은 가로로 연속되도록 M개의 벌통을 선택하고 선택한 벌통에서 꿀을 채취할 수 있다. 각 일꾼이 선택한 벌통이 겹치면 안 된다. 두 명의 일꾼은 선택한 벌통에서 꿀을 채취하여 용기에 담아야 한다. 이 때, 용기는 각각의 일꾼이 하나씩 가지고 있는 것이다. 벌통에 채취할 수 있는 꿀의 최대 양은 C이다. 최대 C보다 더 많이 채울 수 없다. 두 일꾼이 꿀을 채취하여 얻을 수 있는 수익의 합이 최대가 되는 경우를 찾는 문제. 채취가능한 모든 경우를 해보는 완전탐색 문제. 2. 구현하기 벌통에 있는 꿀을 두 명의 일꾼이 채취한다. 각 일꾼들이 채취한 꿀..
[모의 SW 역량테스트] 2105. 디저트 카페 [모의 SW 역량테스트] 디저트 카페 1. 이해하기 디저트 카페 투어는 어느 한 카페에서 출발하여 대각선 방향으로 움직이고 사각형 모양을 그리며 출발한 카페로 돌아와야 한다. 카페 투어 중에 같은 숫자의 디저트를 팔고 있는 카페가 있으면 안 된다. 하나의 카페에서 디저트를 먹는 것도 안 된다. 왔던 길을 다시 돌아가는 것도 안 된다. 디저트를 가장 많이 먹을 수 있는 경로를 찾고, 그 때의 디저트 수를 구하는 문제. 완전 탐색 문제이다. 2. 구현하기 디저트 카페 투어는 대각선 방향으로 움직여야 한다. 사각형 모양을 그려야 하고, 출발한 카페로 돌아와야 하는 조건이 있다. 또한, 하나의 카페에서 디저트를 먹는 것이 안된다는 조건이 있으므로 디저트 카페 투어 수는 4 이상이 되어야 한다. 카페 투어를 하는..
[모의 SW 역량테스트] 2477. 차량 정비소 [모의 SW 역량테스트] 차량 정비소 1. 이해하기 N개의 접수 창구와 M개의 정비 창구가 있다. 고객은 접수 창구에서 고장을 접수하고 끝나면 정비 창구로 간다. 접수 창구 및 정비 창구의 담당자 업무 능력이 달라서 담당자 별 처리 시간이 다르다. 고객은 도착하는 대로 1번부터 고객번호를 부여 받는다. 접수 창구의 우선 순위 여러 고객이 기다리고 있는 경우 고객번호가 낮은 순서대로 우선 접수한다. 빈 창구가 여러 곳인 경우 접수 창구번호가 작은 곳으로 간다. 정비 창구의 우선 순위 먼저 기다리는 고객이 우선한다. 두 명 이상의 고객들이 접수 창구에서 동시에 접수를 완료하고 정비 창구로 이동한 경우, 이용했던 접수 창구번호가 작은 고객이 우선한다. 빈 창구가 여러 곳인 경우 정비 창구번호가 작은 곳으로 간..
[모의 SW 역량테스트] 2383. 점심 식사시간 [모의 SW 역량테스트] 점심 식사시간 1. 이해하기 이동 완료 시간은 모든 사람들이 계단을 내려가 아래 층으로 이동을 완료한 시간이다. 사람들이 아래층으로 이동하는 시간은 계단 입구까지 이동 시간과 계단을 내려가는 시간이 포함된다. 계단 입구까지 이동 시간: |PR-SR|+|PC-SC| (PR,PC: 사람 P의 세로,가로위치, SR,SC: 계단 입구 S의 세로,가로위치) 계단을 내려가는 시간 계단 입구에 도착하면, 1분 후 아래칸으로 내려 갈 수 있다. 계단 위에는 동시에 최대 3명까지만 올라가 있을 수 있다. 이미 계단을 3명이 내려가고 있는 경우, 그 중 한명이 계단을 완전히 내려갈 때까지 계단 입구에서 대기한다. 계단마다 길이 K가 주어지며, 계단을 완전히 내려가는데 K분이 걸린다. 모든 사람들이..
[모의 SW 역량테스트] 2382. 미생물 격리 [모의 SW 역량테스트] 미생물 격리 1. 이해하기 미생물들이 구역을 벗어나는걸 방지하기 위해, 가장 바깥쪽 가장자리 부분에는 특수한 약품이 칠해져 있다. 미생물의 움직임은 상, 하, 좌, 우 중 하나이다. 처음에 미생물은 약품이 칠해진 부분에 위치하지 않는다. 미생물 군집은 1시간마다 이동방향에 있는 다음 셀로 이동한다. 미생물 군집이 이동 후 약품이 칠해진 곳에 도착하면 군집 내 미생물의 절반이 죽고, 이동방향이 반대로 바뀐다. 이동 후 두 개 이상의 군집이 한 셀에 모이는 경우 군집들이 합쳐지게 된다. 합쳐 진 미생물의 이동 방향은 군집들 중 미생물 수가 가장 많은 군집의 이동방향이 된다. M시간 후 남아 있는 미생물 수의 총합을 구하는 문제. 시뮬레이션 문제. 2. 구현하기 미생물의 움직임을 구현..
[모의 SW 역량테스트] 1953. 탈주범 검거 [모의 SW 역량테스트] 탈주범 검거 1. 이해하기 지하 터널은 총 7 종류의 터널 구조물로 구성되어 있다. 탈주범은 1시간에 인접한 네 방향으로 1 이동이 가능하다. 경과된 시간이 주어질 때 탈주범이 위치할 수 있는 장소의 개수를 구해야 한다. 2. 구현하기 현재 위치한 지하 터널과 다음에 이동할 지하 터널을 비교해서 이동할 수 있는 곳인지 판별해야 한다. 또한 지하 터널이 없는 곳은 탈주범이 이동할 수 없다. bool can_not_move(int x, int y, int nx, int ny, int d) { if(nx = N or ny = M or dist[nx][ny] != -1 or map[nx][ny] == 0) return true; if(map[x][..