본문 바로가기

Programming399

swexpert 미생물 /* 오후 14:41정사각형 구역 안에 케이개의 미생물 군집가로 엔 새로 엔개 총 엔엔 개의 정사각형 셀들미생물이 벗어나는 것을 방지 오께이. 제한 하나씩 줄이기.배치되어 있는 예입니다. 오께이세로위치 가로 위치 미생물 수 이동방향미생물수는 무엇이지 한시간마다 이동방향에 있는 다음 셀로 이동 미생물군집이 이동 후 약품이 칠해진 셀에 도착하면 군집 내 미생물의 절반이 죽고, 이동 방향이반대로 바뀝니다. 미생물 수가 홀수인 경우 반으로 나누어 떨어이지 않으므로, 살아남는 수는원래 미생물 수를 2로 나눈 후 소수점 이하를 버림한 값 오께이 그냥 몫으로 계산하면됩니다.한마리 있는 경우 군집이 사라지게 됩니다. 이동 후 두 개 이상의 군집이 한 셀에 모이는 경우 군집들이 합쳐지게 됩니다.이동 방향은 군집들 중 미.. 2018. 2. 24.
백준 차량 정비소 /*다시 짜보도록 하겠습니다. 최대한 예정와 동일하게. 이름도 현상도 똑같이.먼저 입력은 전부 받고, 접수대에 대해서만 짜보도록 하겠습니다. 1에서 받은 고객 && 2에서 정비한 고객걸러내면 됩니다. */ #include #include using namespace std; int N, M, A, B;int a[10], b[10];int n[10], m[10];int K;int t[1001];int A_log[1001];int B_log[1001];int index, index2;int sum;int ans; int sec;queue recep_waiting, repair_waiting;int time_store[21]; void problemIn() {cin >> N >> M >> K >> A >> B.. 2018. 2. 23.
백준 경사로 일단 경우의 수를 나누고, 어떻게 할 것인지를 설계한다음에,풀이하도록 하겠습니다. 그리고 아이디어를 명확하게 알았으니,왜 경사로 맵을 하나만들 생각을 안했을까?그리고 길이에 대해서 갈 생각을 안했을까? 2018. 2. 22.
백준 뿌요뿌요 /*다시 정돈해서 풀어보도록 하겠습니다. 와일(1){1. 뿌요찾아서 터트리기 cnt++; (터뜨릴 뿌요없으면 break)2. 중력을 이용해서 아래 0 없애기}*/ #include #include #include #include #include using namespace std; int map[13][7];int visit[13][7];int x, y, nx, ny;int dx[] = { 0,0,1,-1 };int dy[] = { 1,-1,0,0 };int chain_cnt, zero_cnt;string a;int curNum;int same_color_cnt, flag;struct points {int x, y;};queue que;vector vec; void problemIn() {for (int .. 2018. 2. 22.
백준 3190 뱀 /*뱀 문제 머리를 다음칸에 위치 시킵니다.if 사과 있, 사과를 먹고 꼬리는 그대로else 사과 없, 꼬리가 위치한 칸을 비웁니다.뱀이 죽는데 몇 초가 걸리는지 확인해보세요.*/ #include #include #include #define SIZE 101using namespace std;int n, k, l;char c;int x, y, nx, ny, d;int dx[] = { 0,0,1,-1 };int dy[] = { 1,-1,0,0 }; // 동서남북int sec;int a, b;int map[SIZE][SIZE];struct points {int x;int y;};queue dir_info;queue snake; void problemIn() {cin >> n >> k; // 맵의 크기, 사과.. 2018. 2. 21.
백준 일곱난쟁이 /*일곱 난쟁이 조합 알고리즘이 아니라 2중 포문 으로 풀어보도록 하겠습니다.*/ #include #include using namespace std;int numArr[9];int total, sum, a, b; void problemIn() {for (int i = 0; i > numArr[i];total += numArr[i];}sum = total;} void solve() {for (int i = 0; i < 8; i++) {sum -= numArr[i];for (int j = i + 1; j < 9; j++) {sum -= numArr[j];if (sum == 100) {a = i;b = j;sum += numArr[j];break;}else {sum += numA.. 2018. 2. 21.
백준 스타트와 링크 /*스타트링크 문제, 엔명은 짝수입니다. 쌍의 능력치의 합입니다. 팀의 능력치는 에스아이제이와 에스제이아이입니다. 엔은4이고 에스가 아래와 같은 경우를 살펴보도록 하겠습니다. 1. 먼저 팀을 나누고,엔이 4이면 4C2 로 0102031223이런식으로 나누게 됩니다. 오께이. 2. 나눈 팀에 대해서 합을 구하고 3. 능력치의 차이를 최소로 하기위해서, 팀1 합 - 팀2합 = 최소값을 찾는 것이 끝.*/ #include #include #define SIZE 21using namespace std; int map[SIZE][SIZE];int visit[SIZE];int n, x, y, nx, ny;int team1, team2;int minVal=1000000000, diff; void problemIn().. 2018. 2. 21.
백준 주사위 던지기 /*크기가 엔엠인 지도가 있습니다. 주사위의 전개도는 아래와 같습니다.지도의 좌표는 알씨로 나타내며 으로부터 떨어진 칸의 개수 이므로인데스 0부터 시작해도 상관없습니다.주사위는 지도 위에 윗 면이 1이고, 동쪽을 바라보는 방향이 3인 상태입니다. 1. 가장 처음에 주사위에는 모든 면이 0이 적혀져 있습니다. 주사위를 굴립니다.1. 이동한 칸에 써 있는 수가 0 이면, 주사위의 바닥면에 써 있는 수가 칸에 복사0이 아닌 경우, 칸 - > 주사위, 칸에 써 있는 수가 0 이 됩니다. 놓은 곳의 좌표와 이동시키는 명령이 주어졌을 떄, 상단에 써 있는 값을 구하는 프로그램바깥으로 이동시키려는 경우 -> 해당 명령을 무시, contiune 를 넣으면 됩니다. 동 서 북 남의 순서로 돌아가게 됩니다.남남남 동 북북.. 2018. 2. 21.
백준 테트로미노 /*여러 개 이어 붙인 도형있습니다. 정사각형은 겹치면 안됩니다. 도형은 모두 연결되어야 합니다.꼭지점 끼리 연결되어야 합니다. 엔엠 하나를 적절히 놓아서 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하세요.회전이나 대칭 가능합니다. 예를 들어 먼저 작대기 하나를 가지고 검사를 시행합니다. 그럼, 가로로 두었을떄,4개라는 공통점이 있습니다. 그러므로 재귀로 한번 풀어보면 어떻게 풀리나요. 뎁스 4가 되면 계산되도록 실행하면 됩니다. 그런데 움직이는 위치는? 동서남북 상관없이 4가 되면 되고, 움지이는 수는 상관없이 섬만 기억하고 있으면 됩니다.그리고 행렬 밖으로 넘어가는지 검사하면 됩니다. dfs 로 풀이가 가능합니다. 4개의 위치를 저장하고 있는 벡터가 있어야 하나요? 그렇게 처음 시작.. 2018. 2. 21.
백준 연구소 문제 다시 풀어보기 #include #include #include using namespace std;#define SIZE 8int map[SIZE][SIZE];int map_store[SIZE][SIZE];int check[SIZE][SIZE];struct points {int x, y;};queue que;int dx[] = { 0,0,1,-1 };int dy[] = { 1,-1,0,0 };int x, y, nx, ny, n, m;int wall;int maxVal;int safe_cnt; void copy_map(int(*a)[SIZE], int(*b)[SIZE]) {for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {b[i][j] = a[i][j];}}} voi.. 2018. 2. 20.