일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 쉬운 알고리즘 문제
- PyQt
- 원서읽기
- sw expert
- D4
- dfs
- BFS
- 알고리즘 문제
- the midnight library
- 코딩테스트
- sw expert academy
- 완전탐색
- English
- englishbook
- 코테 대비
- 삼성
- 알고리즘
- 직무면접
- 코테 준비
- 원서
- SQL
- 코테
- 프로그래머스
- 원서읽자
- 백준
- MySQL
- STUDYENGLISH
- swexpertacademy
- readingbook
- nightroutine
- Today
- Total
목록백준 (21)
시나브로
#include #include using namespace std; typedef struct y { int i; int j; }; int map[110][110] = { 0 }; int list[110][2]; int head[2] = {1,1}; int tail[2] = {1,1}; int d = 1; int dx[] = { -1,0,1,0 }; int dy[] = { 0,1,0,-1 }; int main() { freopen("inp.inp", "r", stdin); freopen("out.out", "w", stdout); int n = 0; cin >> n; int apple; cin >> apple; for (int i = 0; i > ..
#include using namespace std; int check[6] = { 0 }; //돌려야되는 것을 체크 int wheel[6][10] = { 0 }; void right(int i) { // 오른쪽에 돌려야 되는 것이 있는 지 확인한다. if (i ==5) return; if (wheel[i - 1][2] != wheel[i][6]) { if (check[i - 1] == -1) check[i] = 1; else check[i] = -1; right(i + 1); } } void left(int i) { // 왼쪽에 돌려야되는 것이 잇는 지 확인한다. if (i == 0) return; if (wheel[i + 1][6] != wheel[i][2]) { if (check[i + 1] == ..
Solution 데이터를 받아 map에 저장합니다 (0.0)으로 dfs함수를 호출합니다. 문제에서 무조건 0,0은 치즈가 없다고 하였기에 이점을 이용하여 공기에 접촉된 치즈를 찾습니다. 찾은 치즈는 list 큐에 저장합니다. 여기서 포인트는 각 치즈의 시간을 알아야 된다는 것입니다. 저는 이를 해결하기위해 자료구조 큐와 (1110,1110)이라는 값을 넣어줬습니다. => 큐를 이용하면 순차적으로 pop이 되어 순서를 지킬 수 있습니다. 한번 dfs함수를 돌면서 들어온 값들은 동일한 시간을 가지고 있기에 이후 값과 섞이지 않고 관리할 수 있습니다. 하지만, 이렇게 한다고 해도 시간이 변경되는 기준점을 찾을 수 없습니다. 그래서 저는 임의값 (1110,1110)을 넣어 시간이 변경되는 시점을 체크하였습니다...
단순 완전탐색보다는 조금 힘든 문제인 것 같다. Solution 먼저 데이터를 받아 map를 만든다. 여기서 min_high와 max_high를 찾는다. 이는 처음 물높이를 설정할 때 이용한다. 모든 점을 우선순위 큐에 넣어서 오름차순 정렬을 한다. => 여기서 다른 구조를 사용해도 된다. 나는 벡터를 쓸려고하다가 큐가 편할 것 같아서 큐를 사용했는데 정렬이 안되서 할 수 없이 우선순위 큐를 이용했다. 그러므로 아무 자료구조를 사용해도 좋다. 단, 구조체 정렬이 가능해야된다는 점을 유의하자. 자료량이 계속 들어오는게 아니라 자료량의 크기도 정해져있기 때문에배열도 상관없다. 높이 가장 작은 곳을 찾아 물 높이가 min_high일 때, 잠기는 지 확인하다. 잠긴다면, 잠겼다는 표시로 0으로 바꿔준다. 만약 ..