일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 서버개발캠프
- BaekJoon
- IBK기업은행 #기업은행 #디지털 #직무 #정리
- Union-find
- 소감
- 유니온파인드
- 중반부
- LIS #Algorithm #요소추적
- Algorithm
- 백준
- 알고리즘
- c++
- 코테
- 코딩테스트
- 카카오
- 보석쇼핑
- 투포인터
- 스마일게이트
- 삼성 #코테 #2020상반기 #c++
- 카카오인턴
- 1편
- 식단
- BFS
- Smilegate
- Today
- Total
목록Algorithm/Programmers (21)
짱아의 개발 기록장
이것은 간단한 공식? 으로 해결할 수 있는 문제였다. [메인 로직] (행*열 = 갈색 수+노란색 수)이기 때문에 R*C를 통해 각 R, C의 값을 유추해볼 수 있다. 또한, (r-2)*(c-2) = 노란색 수 공식도 성립해야한다. 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 32 #include #include using namespace std; vector solution(int brown, int yellow) { vector answer; int RC = brown+yellow; int r, c; for(int i=3; i=b){ c = a; r = b; }else{ c = b; r = a; ..
이 문제는 도저히 아이디어가 생각나지 않아 코드는 참고하지 않고 아이디어만 다른 분의 아이디어를 참고해서 풀었다. 아래가 다른 분의 아이디어이다. [메인 로직] 첫 번째 카메라는 첫 번째로 차가 빠져나가는 지점에 설치해야 합니다. 왜냐하면 이 지점에서 설치하지 않으면 첫 번째로 빠져나가는 차는 찍을 수 없기 때문입니다. 그 지점에 카메라를 설치하면 해당 지점을 지나는 차들은 모두 카메라에 찍히게 되므로 더 이상 신경 쓸 필요가 없습니다. 두 번째 카메라는 아직 카메라에 찍히지 않은 차 중에서 첫 번째로 차가 빠져나가는 지점에 설치하면 됩니다. 두 번째 지점에 카메라를 설치하면 해당 지점을 지나는 차량들은 모두 찍히게 되므로 더 이상 신경 쓸 필요가 없습니다. 이런 식으로 계속 해서 카메라를 설치하는 과정..
맨 처음 예전에 이 문제를 풀었을 때에는 큐로 풀어야 한다는 생각을 정말 1도 못했다가... 오랜만에 문제를 다시 푸니까 여지 없이 큐로 풀어야겠다는 생각이 바로 들었다! [메인 로직] 큐에 해당 트럭의 무게를 계속 넣어주는데, 만약 다리에 있는 트럭들의 무게의 합이 버틸 수 있는 무게를 넘어서게 되면 트럭을 넣어주지 않고 -1의 의미 없는 값을 넣어주어서 큐가 비어있지 않도록 해주었다. 그리고 최종적으로 트럭을 가리키는 idx가 truck_weights벡터의 크기를 넘어서면 break하도록 했다. 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 32 33 34 35 36 37 38 #include #i..
bfs와 kruskal 알고리즘을 사용해야 하는 매우 괜찮은 문제이다. 총 3단계로 생각해볼 수 있다. 1) bfs로 이동할 수 있는 영역을 숫자로 check이차원 배열에 표시해두었다. 2) 그 후, 각 영역간에 필요한 사다리의 비용을 {사다리 비용, {영역1, 영역2}}의 형태로 vector에 저장했다. 3) MST를 구현하기 위해 kruskal을 사용하여 각 영역을 최소 비용으로 연결해주었다. MST로 구현해야 한다는 것을 쉽게 생각해내지 못해서 좀 헤맸던 것 같다. (어떻게 최소 비용으로 연결해주지..? 이 생각만 30분 넘게 했던 것 같...다....ㅎ) 코드 첨부 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..
약간 생각의 전환이 필요한 이분탐색 문제였다. mid값을 '돌사이의 최솟값'이라고 잠정적으로 잡아놓은 후에, mid값보다 (현재 돌 위치-이전 돌 위치)값이 더 작으면, 돌을 없애고 더 크면, 돌을 살려둔다. 그 후, 없앤 돌의 수가 n보다 작거나 같다면 mid(돌 사이의 최솟값)이 충분히 작다는 의미니 low = mid+1을 해주고 n보다 크다면 mid값이 너무 크다는 의미니 high = mid-1로 해준다. .....이런식으로 이분탐색을 진행하면 된다. 이 문제도 그림으로 설명하면 좋을 것 같아서 추후 첨부해보겠다. 코드 첨부 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 32 33 34 35 36..