일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코드트리
- 백준
- 나무박멸
- 마법의숲탐색
- 3Dreconstruction
- 소프티어
- 구현
- ICER
- 왕실의기사대결
- 코드트리빵
- 순서대로방문하기
- ARM
- 시뮬레이션
- 삼성기출
- PQ
- Calibration
- 포탑부수기
- 싸움땅
- 조합
- 수영대회결승전
- 마이크로프로세서
- 이진탐색
- ros
- DenseDepth
- 슈퍼컴퓨터클러스터
- 루돌프의반란
- dfs
- BFS
- DP
- 토끼와 경주
- Today
- Total
목록전체 글 (101)
from palette import colorful_colors
많이 해맸다.. 내 이전코드 왜 안됐는지 꼭 체크하기, 2중 for문에서조합 짜기 다시 꼭 연습하기 -> 이전코드대로 하면 사다리가 하나 건너 있을 경우 오류가 난다! 주어진대로 구현 잘 하기 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int N, M, H, target, answer = -1; int MAP[31][11]; void input() { cin >> N >> M >> H; int a, b; for (int i = 0; i > a >> b; MAP[a][b] = 1; MAP[a][b + 1] = 2; } } // 맵에서 사다리 타고 체크하는 타고, 2를 만나면 왼쪽으로 타게 된다..
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 언어: C++, 시간: 52ms 2차원 격자에서 조합을 이용한 대표적인 문제. 사실 조합을 안 쓰고 그냥 순열로 벽을 세우는걸 생각해도 된다. 하지만 그러면 굉장히 느려진다. (나의 경우 52ms -> 332ms) DFS를 통해서 벽을 세우고, 벽을 다 세우면 BFS를 이용해서 바이러스 퍼뜨렸다. 꼭 복습하기! #define _CRT_SECURE_NO_WARNINGS #include #include #incl..
https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 언어: C++, 시간: 12ms 완전탐색으로 재귀 돌면서 모두 체크하기! CCTV별 방향은 따로 2중 벡터 배열로 만들어서 코드 수와 실수를 줄이도록 유도했다. #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; struct Node { int y; int x; }; struct cctv{ int..
만약 등산로를 깎는 경우, 전역 MAP을 썼다면 복구시켜야 하는 백트래킹 문제! 깎았는지 / 안 깎았는지 여부를 재귀함수 매개변수에 추가로 넣어준다 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int T, N, K, maxNumber, answer; int MAP[9][9]; int visited[9][9]; int dy[4] = { -1, 1, 0, 0 }; int dx[4] = { 0, 0, -1, 1 }; struct Node{ int y; int x; }; vector startPoint; void init() { memset(MAP, 0, sizeof(MAP)); m..
가지치기를 2번 해줘야 한다 // 최악의 케이스 경우도 int를 넘지는 않음. (1억 8천 회). 단 1초는 넘음(1억회 이상이니깐) // 처음엔 순열 다 만들고 각 경우마다 테스트할랬는데 20에서 시간초과 // -> 순열 만들면서 동시에 판단하기 // 가지치기 2개 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; int T, N, answer, totalWeight; int choo[10]; int visited[10];// 순열 만들기 위한 체크 함수 //int factorial[] = {0, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};이거 써봤자 의미 거..
구조체 사용, sort를 이용한 벡터 정렬 사용 BFS, 정렬 연습에 좋은 문제! #include #include #include #include #include using namespace std; int N, startY, startX; int MAP[21][21]; int visited[21][21]; int dy[4] = { -1, 1, 0, 0 }; int dx[4] = { 0, 0, 1, -1 }; int babyShark = 2; int mapTime, feedCnt; struct fish { int dist; int y; int x; }; struct Node { int y; int x; }; bool compare(fish a, fish b) {// 나중에 fishes 벡터를 정렬하기 위..
3차원 벡터를 이용해 풀었다. 생각해보니 벡터를 요소로 가지는 2차원 배열로 풀어도 될 것 같 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include using namespace std; int dy[4] = { -1, 1, 0, 0 }; // 상하좌우 int dx[4] = { 0, 0, -1, 1 }; int changeDir[4] = { 1, 0, 3, 2 }; // 해당 위치에 들어갔을때 방향 바꿔주는 함수 ex) 0 -> 1 int T, N, M, K, curTime, answer; struct Node { int y; int x; }; struct microbe { int population; int directi..
주어진대로 침착하게 구현만 하면 해결되는 문제! 딱히 알고리즘이 필요없는 쌩구현, 시뮬레이션 문제 #include #include using namespace std; int N, M; int dx[4] = {-1, 0, 1, 0}; int dy[4] = {0, 1, 0, -1}; int MAP[50][50]; int cnt; int curR, curC, direction; // 반시계 방향으로 value만큼 방향 변환 int directionChange(int direction, int value) { int temp = direction - value; if (temp < 0) temp += 4; return temp; } // 주변 4칸 중 먼지 찾기 함수 bool dustFind(int row, ..