일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IBK기업은행 #기업은행 #디지털 #직무 #정리
- 서버개발캠프
- 중반부
- 카카오
- 스마일게이트
- LIS #Algorithm #요소추적
- 카카오인턴
- c++
- 투포인터
- BaekJoon
- 1편
- 삼성 #코테 #2020상반기 #c++
- 소감
- BFS
- Smilegate
- Algorithm
- 코테
- 식단
- 유니온파인드
- Union-find
- 보석쇼핑
- 알고리즘
- 백준
- 코딩테스트
- Today
- Total
목록Algorithm (178)
짱아의 개발 기록장
여러가지 방법으로 구현해볼 수 있는 문제였다. 보니까 다들 dp, 그리디, 재귀 등 다양한 방법으로 풀었다. [메인 로직] 1 | 2 | 3 | 4 ... | n-1 | n 까지 for문으로 탐색하면서 다음으로 (지금 날짜+걸리는 날)만큼 더한 날짜로 넘어가서 최대값을 찾는다. 아무래도 코드를 보면 더 이해가 잘 될 듯하다. 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 // 퇴사 #include #include using namespace std; int n, days, cost; vector v; int ans = 0; void dfs(int d..
역시 삼성 문제 답게 구현하는 스킬을 가지고 있으면 충분히 풀 수 있는 문제였다. 다만, 나는 인접한 얼음이 있는 곳이 3개 이상이어야 한다는 조건을 구현하는 부분에서 for문으로 탐색하면서 -1을 해줬더니 약간의 오류가 생겨서 temp라는 배열을 따로 선언해서 구현했다. rotate() : 회전시키는 함수 bfs() : 인접한 곳을 찾는 함수 area() : 가장 큰 영역을 찾는 함수 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 ..
가장 헷갈렸던 부분이... x->y로 토네이도가 이동할때 y에 있던 모든 모래들이 비율과 α가 적혀있는 칸으로 이동하는 것인데 x에 있던 모래가 이동하는 것으로 문제를 잘못 읽어서 처음 설계할때,,, 시간이 좀 걸렸다 ㅎㅎ 문제를 잘 읽고 구현만 잘 해준다면 무난무난한 문제였다! 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 73 74 75 76 77 78 79 80 81 82 83 8..
2020 하반기 오전 sw역량테스트 시험에서 출제되었던 문제이다. 뭔가 실제 시험장에서 봤던 시험이 더 친절하게 설명이 되어 있었던 것 같다... 백준은 약간 복기가 어설프게 되어있는 느낌?? 설명이 아무래도 살짝 헷갈렸다. [메인 로직] strong -> 내구도, robot-> 로봇이 있는 지 여부 벨트가 각 칸 위에 있는 로봇들과 함께 한 칸 회전한다. 내리는 위치에 있는 로봇은 내린다. 가장 먼저 벨트에 올라간 로봇부터, 벨트가 회전하는 방향으로 한 칸 이동할 수 있다면 이동한다. 만약 이동할 수 없다면 가만히 있는다. 로봇이 이동하기 위해서는 로봇이 내리는 위치가 아니고, 이동하려는 칸에 로봇이 없으며, 그 칸의 내구도가 1 이상 남아 있어야 한다. 올리는 위치에 있는 칸의 내구도가 0이 아니면 ..
LCS와 매우 유사한 유형이다.. LCS와 Edit Distance모두 2차원 DP를 이용한다? 그리고 전체적인 로직 부분이 매우 유사합니다. 다만! LCS는 공통된 부분을 찾으면 +1을 해나가는 로직이지만, Edit Distance는 공통된 부분을 찾으면 그냥 놔두고 공통되지 않은 부분이 나오면 오히려 insert, delete, replace작업을 해주어야 하기 때문에 +1만큼 더해준다. 사실 처음에는 어떻게 풀지 감이 오지 않아서...ㅎㅎ 유투브를 참고해서 풀었다. www.youtube.com/watch?v=b6AGUjqIPsA&feature=youtu.be 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 clas..
[메인 로직] false (2) -> 4 -> 16 -> 37 -> 58 -> 89 -> 145 -> 42 -> 20 -> 4 false인 경우는 특정 숫자가 계속적으로 반복되는 현상이 일어난다. 즉, 사이클이 생기는 경우는 거짓이라고 판별하는 알고리즘을 구현하면 된다. 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 // 반복되는지 살펴보기..visit 처리 class Solution { public: map m; bool isHappy(int n) { do{ string s = to_string(n); int num = 0; for(int i=0; i
간단한 구현문제였다. 0이 있는 곳을 기준으로 4방향으로 탐색해서 모든 값들을 0으로 만들어주면 된다. 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 class Solution { public: int dx[4] = {-1, 1, 0, 0}; // 위, 아래, 왼, 오 int dy[4] = {0, 0, -1, 1}; int visited[201][201] = {0, }; void setZeroes(vector& matrix) { int n = matrix.size(); int m = matrix[0].size(); for(int i=0; i
중첩된 범위를 가지는 부분을 하나로 합쳐주는 문제였다. [메인 로직] 가장 핵심 부분이, 만약 [Start, End]로 구성된 배열이 있을 때, End값보다 작거나 같은 Start값을 갖는 또 다른 배열이 있다면 2개의 배열을 합쳐서 하나의 배열로 만들 수 있다. ex) [2, 4], [3, 6]이라면 4>=3이기 때문에 [2, 6]으로 만들 수 있다. 또한, [2, 5], [3, 4] => [2, 5]이기 때문에 합쳐진 후의 End값은 두 배열의 End값중 큰 값으로 정해지는 것도 고려해야 한다! (내가 틀렸던 부분...^^) 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 class Sol..