일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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기업은행 #기업은행 #디지털 #직무 #정리
- Smilegate
- 식단
- BFS
- 카카오인턴
- 카카오
- 중반부
- 투포인터
- 1편
- 유니온파인드
- Algorithm
- LIS #Algorithm #요소추적
- 삼성 #코테 #2020상반기 #c++
- 보석쇼핑
- 코테
- 코딩테스트
- 알고리즘
- c++
- Union-find
- 서버개발캠프
- 소감
- Today
- Total
목록Algorithm/삼성 sw 역량테스트 기출 (13)
짱아의 개발 기록장
역대급 구현문제이다.....ㅎㅎ... 생각보다 구현하는 데에 오래거렸다...(물론 중간에 어이없이 빼먹은 부분 때문에 더더) *중요한 포인트* 1. 행이나 열이 타일로 가득찬 경우, 지우고 내리고 지우고 내리는 것이 아니라 한 꺼번에 지우고 내리면 된다. 2. 블록은 떨어질 때 블록 단위로! 떨어진다. (마구잡이로 떨어지는 것이 아니라) 2번 포인트를 위해서 글쓴이는 green, blue 2차원 배열에 블록을 저장할 때에 블록의 번호를 저장했다. 그리고 인접한 곳에 같은 번호를 가진 칸이 있다면 하나의 블록으로 간주했다. 위에 2가지 포인트만 잡고 코드를 설계하고 구현하면 될 것 같다. 구현은 끈기를 가지고 푼다면 풀 수 있는 문제이다. 코드 첨부(매우 김 주의) 1 2 3 4 5 6 7 8 9 10 1..
정말 말 그대로 문제에서 봄, 여름, 가을, 겨울에 해당하는 조건들을 다 구현해주면 되는 구현문제이다. 다만, 어떠한 자료구조에 나무의 상태, 양분의 상태를 저장할지 코드를 설계하는 초반 작업이 중요하다고 생각된다. 글쓴이는 vector tree[11][11]; 에 나무의 상태를 저장했다. (한 칸에도 여러 그루의 나무가 있을 수 있기 때문) 그리고 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ..
완벽한 백트래킹(dfs)문제이다. dfs 함수에서 모든 상태를 새로운 배열과 벡터에 담아두고 물고기를 움직이고, 상어를 움직인 후 재귀함수를 통해 계속 반복한다. 그 후 재귀에서 돌아오면 다시 담아두었던 새로운 배열과 벡터의 값들을 원래 배열과 벡터에 넣어주면 된다. 즉, 계속 백트래킹을 하면서 원래대로 돌려놓는 작업이 중요하다! 코드첨부 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 ..
이 문제는 한 번에 맞을 수 있었다. 최단 거리의 사람을 판별하는 것이 핵심 포인트! 나는 벡터에 를 넣어주었고 sort해주어서 가장 앞에 있는 원소들 중 거리가 똑같다면 또 다른 벡터에 값을 넣고 sort해주어 0번째 있는 customer를 최단 거리에 있는 사람으로 판별했다. 주저리 설명을 너무 못한다.... 코드에 주석을 달아 놓았으니 참고하시길... 코드 첨부 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67..
내가 틀렸던 포인트는 2가지이다. 1) 문제에서 1000을 초과할 경우 -1을 출력하라고 했는데 1000일 경우에 break를 하도록 코드를 짜서 1차로 틀렸다. 2) 이차 배열 벡터에 상어의 번호와 k값을 저장했는데 k값이 0이되면 요소를 바로 삭제해주어야 하는데, 나는 -1일때 삭제를 해주어서 2차로 틀렸다... 그 이후에는 그냥 구현 문제여서 어느 자료구조에 어떻게 정보들을 저장할 것인지 잘 판단하면 될 것 같다. 코드 첨부(c++) 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ..