일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 투포인터
- 삼성 #코테 #2020상반기 #c++
- IBK기업은행 #기업은행 #디지털 #직무 #정리
- 유니온파인드
- 식단
- Union-find
- Smilegate
- LIS #Algorithm #요소추적
- 보석쇼핑
- Algorithm
- 카카오
- 코테
- 코딩테스트
- 중반부
- BFS
- 카카오인턴
- 알고리즘
- BaekJoon
- 백준
- 소감
- 1편
- 서버개발캠프
- c++
- 스마일게이트
- Today
- Total
목록Category (222)
짱아의 개발 기록장
맨 처음 예전에 이 문제를 풀었을 때에는 큐로 풀어야 한다는 생각을 정말 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..
예전에 백준에서 비슷한 문제였던 전화번호 목록?을 풀었던 기억이 있어서 비교적 쉽게 접근할 수 있었다. [메인 아이디어] 일단, 문자열 배열을 정렬하면 어떤식으로 정렬이 되는 지를 알아야 하는게 우선이다! 문자열 배열 ["flower", "flow", "flo", "fl", "snack", "sna", "s"]를 정렬하면, ["fl", "flo", "flow", "flower", "s", "sna", "snack"] 과 같이 정렬이 된다. 즉, 접두사가 일치하는 문자열 끼리 정렬이 되고 그 후에 알파벳 순서로 정렬된다. 위의 특성을 잘 활용하면 문제를 빠르게 풀 수 있다. 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..
Spring은 크게 IoC, AOP, PSA 3가지의 개념을 제공해준다. 이 개념은 Spring의 Triangle이라고 부른다. * AOP(Aspect Oriented Programming) = 흩어진 코드를 한 곳으로 모아 ex) class A { method a () { AAAA->AAA 오늘은 치킨을 먹는 날이에요. BBBB->BB } method b () { AAAA->AAA 오늘은 달콤한 디저트를 먹는 날이에요. BBBB->BB } } class B { method c () { AAAA->AAA 오늘은 그냥 너무 우울한 날이어서 불닭을 먹을 거에요. BBBB->BB } } 같은 클래스 다른 메소드, 다른 클래스 다른 메소드에서 똑같은 일을 반복하는 AAAA가 AAA로 바뀌어야 한다면??? AAA..
정말 간단한 dfs로 트리의 높이를 구하는 문제였다. 머리를 깨워주기 위해..ㅎㅎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 class Solution { public: int height = 1; void countMaxHeight(TreeNode* node, int h){ if(node==NULL){ height = max(height, h); return; } countMaxHeight(node->left, h+1); countMaxHeight(node->right, h+1); } int maxDepth(TreeNode* root) { if(root==NULL) return 0; countMaxHeight(root->left, 1); ..
모기업 코드페스티벌에 참여했는데,,,, 유일하게 풀지 못했던 문제;;;; ㅂㄷㅂㄷ 팰린드롬인지 아닌지를 판별하는 문제는 쉽게 풀었었는데 만드는 문제는 처음 접해서 당황했다.... 끝나고 백준을 찾아보니 역시나 똑같은 문제가 있었다 ㅋㅋㅋ 그래서 다른 분의 코드를 참조해서 다시 풀어보았다! [메인 로직] 해결방법은 인덱스가 0인 지점부터 차례대로 조사하며 팰린드롬이 되는 최소한의 시작 위치를 찾는 것이다. 어차피 중간에 팰린드롬이 생기는 것은 아무 의미가 없기 때문에특정 인덱스부터 문자열의 맨 마지막까지 팰린드롬이 되는 부분 문자열을 찾으면, (특정인덱스+원래 문자열의 크기)가 최소 팰린드롬의 길이가 되는 것이다. aabcaa인 경우에는 맨 뒤의 aa만 팰린드롬이 가능하다 따라서 aa는 그대로 두고 나머지..
1. Field Injection(using @Autowired) 2. Method Injection(=setter Injection) 3. Constructor Injection(생성자 주입) => 스프링 측에서 최근 가장 추천하는 방법!
사실 문제 유형은 DP(Dynamic Programming)으로 분류되어 있었지만, 그냥 구현? 문제로 풀었다. 아이디어는 문제의 Discuss 탭에 있는 외국인 분의 코드를 보고 얻었다...ㅎ [메인 로직] 최대 합을 저장하는 변수 ans, 매 번 큰 값을 비교하여 저장하는 변수 sum을 두고 탐색하는 식으로 구현했다. 예를 들어, [-1, 2, 3]의 배열이 있는 경우 idx = 1 => -1+2 2+3 > 3 이기 때문에 계속 더해주는 것이 이득이다. 따라서, sum = 5가 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Solution..
앞서 풀었던 Combination Sum 과 매우 유사한 문제이다. 하지만, 이 문제는 중복허용이 되지 않는 다는 것! [메인 로직] ex) 10, 1, 2, 7, 6, 1, 5 / target = 8이라면 먼저 오름차순 정렬해준다. 1, 1, 2, 5, 6, 7, 10 으로 정렬된 상태에서 idx = 0부터 target = 8인 조합을 찾아나가면 [1, 2, 5]를 완성할 수 있다. 하지만 idx = 1도 '1'이기 때문에 중복된 결과를 만들게 된다. 따라서, 중복된 값을 만들지 않기 위해!! for문 탐색할 때, if(i>start && candidates[i]==candidates[i-1])이라면 continue를 해서 중복을 막았다. 12345678910111213141516171819202122..