일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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기업은행 #기업은행 #디지털 #직무 #정리
- 알고리즘
- Union-find
- c++
- Smilegate
- 카카오
- 서버개발캠프
- 유니온파인드
- 보석쇼핑
- Algorithm
- 소감
- 스마일게이트
- 코딩테스트
- BFS
- 투포인터
- 코테
- 1편
- BaekJoon
- 백준
- LIS #Algorithm #요소추적
- 중반부
- 식단
- 삼성 #코테 #2020상반기 #c++
- Today
- Total
목록전체 글 (222)
짱아의 개발 기록장
간단한? 구현문제이다. 삼성에서 좋아할 것 같은 유형ㅋㅋ (x1, y1), (x2, y2), (x3, y3), (x4, y4) 4개의 점을 잡고 => 이 점은 배열의 가장 자리 점을 의미 이것을 기준으로 배열을 돌리고 가장자리 점을 안쪽으로 한 칸씩 땡겨와서 또 배열을 돌리는 작업을 x1n>>m>>r; for(int i=0; imap[i][j]; } } while(r--){ int x1 = 0, y1 = 0; int x2 = 0, y2 = m-1; int x3 = n-1, y3 = m-1; int x4 = n-1, y4 = 0; while(x1
오우...level3정도의 문제는 아닌 것 같다는 느낌이다.. 물론 어려운 알고리즘 기술을 요구하는 문제는 아니지만, 구현도 실력이라고 생각하기 때문에 쉽지 않은 문제라고 생각한다. 아래 블로그의 해설을 참고해서 풀 수 있었다. yjyoon-dev.github.io/kakao/2021/01/29/kakao-paircard/ 다익스트라(최단거리)+백트래킹 알고리즘이 혼합된 문제이다. 1) 백트래킹 => 모든 경우의 수 다 돌기 일단, 어떤 카드를 먼저 뒤집을 지를 결정해야 한다.(1~6번) 같은 카드의 경우에도 첫 번째 카드를 먼저 뒤집냐, 두 번째 카드를 먼저 뒤집냐에 따라 달라질 수 있다. 2) 다익스트라 => 특정 점에서 특정 점까지의 최단 거리 구하기 한 칸씩 이동하면서, 큐에 넣고 특히나, 벽에 ..
deque를 사용해서 뱀의 몸을 표현했고 map배열에 사과의 유무를 표시했고 check배열에 이 자리에 뱀이 있는 지 여부를 표시했습니다. *주의할 점* map배열에 표시한 사과를 한 번 먹으면 반드시 없애야한다는 것!! 그것 때문에 한 번 틀렸;; 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 // 삼성역테기출(뱀) #include #include #include..
*틀림 주의* 9, 31번 테스트케이스가 틀리는 코드입니다... 제발 누군가가 이 테케가 뭔지 알려주시면 감사하겠습니다😥 자료형도 long long으로 바꿔주었지만,,,,계속 틀리네요,,, 일단, 초 단위로 모든 범위를 바꾸어주었고 재생수와, 누적 재생수를 계산해서 adv_time만큼의 구간 중에서 가장 큰 값(check[Emid]-check[mid])을 가지고 있는 구간의 시작점을 구하면 된다. ---------------------------------------------------------------------------------------------------------------------------- 고쳤습니다!!! 문제는 Max값을 0으로 잡았던 것이 발목을 잡았네요..ㅜ Max값을 0..
각각의 원소의 개수가 가장 많은 것이 첫 번째 수, 그다음 많은 것이 두 번째 수..... 이러한 규칙이 생기는 것을 알 수 있었다. ex) "{{1,2,3},{2,1},{1,2,4,3},{2}}" => 2(4번), 1(3번), 3(2번), 4(1번) => (2, 1, 3, 4) 형태의 튜플 완성 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 #include #include #include #include #include using namespace std; map m; vector kind; v..
간단한 문자열 처리 문제였다. map을 사용해서 별명의 최신값을 갱신해주었다. 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 #include #include #include #include #include using namespace std; map m; vector solution(vector record) { vector answer; vector v; // uid, kind for (int i=0; i>word;){ cnt++; if(cnt==1){ kind = word; } el..
비트 마스크로 푸는 문제였다. 추후 설명 추가 예정 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 #include #include #include using namespace std; int cal(int num){ int temp = num; string s = ""; while(temp!=0){ s = to_string(temp%2)+s; temp /= 2; } int bitmask = 0; int cnt = 0; for(int i=s.size()-1; i>=0; i--)..
그냥 간단한 구현 문제였다. 코드를 참고하는 것이 좋겠다. 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 #include #include #include #include #include using namespace std; int solution(int m, int n, vector board) { int answer = 0; int num = n*m; while(num!=0){ num = 0; int check[31][31] = {0, }; for(int i=0; i