일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테
- BFS
- 식단
- 유니온파인드
- Smilegate
- c++
- 카카오
- 소감
- 중반부
- 알고리즘
- IBK기업은행 #기업은행 #디지털 #직무 #정리
- 카카오인턴
- LIS #Algorithm #요소추적
- 삼성 #코테 #2020상반기 #c++
- 보석쇼핑
- 백준
- 서버개발캠프
- Union-find
- BaekJoon
- 스마일게이트
- 투포인터
- Algorithm
- 코딩테스트
- 1편
- Today
- Total
목록전체 글 (222)
짱아의 개발 기록장
이 문제는 실제 N* 게임회사에서 나왔던 코딩테스트 문제와 거의 99%일치하는 문제였는데.... 아쉽게도 시험에서는 풀지 못해서 백준에서 유사한 문제를 기여코 찾아내서 풀었다...ㅎㅎ 처음에 봤을 때는, 중학교때 풀었던 경우의 수? 같은 문제여서 대충 DP로 푸는 문제구나 싶었긴 했는데.... 결국은 아래 블로그의 풀이를 참고해서 풀었다..;; (DP는 왜 이렇게 어려울까?ㅎㅎ) blog.naver.com/occidere/220784778900 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 #include #include using namespace std; int n, k; int dp[10001] = {0, }; vec..
여러가지 방법으로 구현해볼 수 있는 문제였다. 보니까 다들 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