일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 완전탐색
- readingbook
- englishbook
- 백준
- MySQL
- 알고리즘 문제
- 코딩테스트
- 코테
- the midnight library
- SQL
- 코테 대비
- 쉬운 알고리즘 문제
- nightroutine
- 원서읽기
- 프로그래머스
- 코테 준비
- PyQt
- 삼성
- 직무면접
- STUDYENGLISH
- D4
- English
- dfs
- sw expert
- 원서읽자
- swexpertacademy
- 알고리즘
- sw expert academy
- 원서
- BFS
- Today
- Total
목록dfs (7)
시나브로
전체탐색하면 쉽게 풀리는 문제였지만, 저는 10번정도 틀렸다는.... ㅠㅜ 논리상 문제는 없어보이는데 왜 이렇게 되나 찾아보니 max와 min값의 초기값이 10억과 -10억으로 setting을 해야됩니다. 2퍼 정도에서 계속 틀리다면 꼭!!! max와 min값의 초기값을 수정하시길!!!! #include #include #include #include #include #include #define MAX 100000000000000; using namespace std; vector number_list; long long maxs = -MAX; long long mins = MAX; void dfs(vector operate, int point, long long sum) { if (point == n..
추천도 : 3 (풀어볼만한 문제이다.) 이 문제의 경우 전체탐색의 문제이다. 간단한 문제인거 같지만, 함정이 있어 조심해야된다. 함정은 데이터 그대로 인덱스로 사용하면 의도한 그림이 나오지 않는다. 이럴 경우, 1 6 14라는 답을 얻게된다. n m 를 행/열이라고 생각하여 사용하면 그림은 행/열이 바껴서 그려진다. 이것만 유의하면 손쉽게 풀 수 있는 문제이다. 만약 이 문제가 단순히 직사각형을 제외한 면적을 구하는 문제였다면, 굳이 100*100 배열을 선언하여 공간을 낭비하지 않을 수 있다. 직사각형의 정보를 받을 때, 면적을 계산하고 겹치는 부분이 있다면, 그 공간의 면접만 빼줘 직사각형의 모든 넓이를 구할 수 있다. 이를 전체면적에서 빼면 간단하게 짧은 시간에 구할 수 있다. 저는 map을 전체 ..
Solution 데이터를 받아 map에 저장합니다 (0.0)으로 dfs함수를 호출합니다. 문제에서 무조건 0,0은 치즈가 없다고 하였기에 이점을 이용하여 공기에 접촉된 치즈를 찾습니다. 찾은 치즈는 list 큐에 저장합니다. 여기서 포인트는 각 치즈의 시간을 알아야 된다는 것입니다. 저는 이를 해결하기위해 자료구조 큐와 (1110,1110)이라는 값을 넣어줬습니다. => 큐를 이용하면 순차적으로 pop이 되어 순서를 지킬 수 있습니다. 한번 dfs함수를 돌면서 들어온 값들은 동일한 시간을 가지고 있기에 이후 값과 섞이지 않고 관리할 수 있습니다. 하지만, 이렇게 한다고 해도 시간이 변경되는 기준점을 찾을 수 없습니다. 그래서 저는 임의값 (1110,1110)을 넣어 시간이 변경되는 시점을 체크하였습니다...
단순 완전탐색보다는 조금 힘든 문제인 것 같다. Solution 먼저 데이터를 받아 map를 만든다. 여기서 min_high와 max_high를 찾는다. 이는 처음 물높이를 설정할 때 이용한다. 모든 점을 우선순위 큐에 넣어서 오름차순 정렬을 한다. => 여기서 다른 구조를 사용해도 된다. 나는 벡터를 쓸려고하다가 큐가 편할 것 같아서 큐를 사용했는데 정렬이 안되서 할 수 없이 우선순위 큐를 이용했다. 그러므로 아무 자료구조를 사용해도 좋다. 단, 구조체 정렬이 가능해야된다는 점을 유의하자. 자료량이 계속 들어오는게 아니라 자료량의 크기도 정해져있기 때문에배열도 상관없다. 높이 가장 작은 곳을 찾아 물 높이가 min_high일 때, 잠기는 지 확인하다. 잠긴다면, 잠겼다는 표시로 0으로 바꿔준다. 만약 ..