일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 식단
- 알고리즘
- Algorithm
- 코딩테스트
- 카카오인턴
- 투포인터
- Union-find
- 삼성 #코테 #2020상반기 #c++
- LIS #Algorithm #요소추적
- 서버개발캠프
- 1편
- 중반부
- c++
- 소감
- BFS
- 백준
- BaekJoon
- IBK기업은행 #기업은행 #디지털 #직무 #정리
- Smilegate
- 보석쇼핑
- 카카오
- 유니온파인드
- 코테
- 스마일게이트
- Today
- Total
목록Category (222)
짱아의 개발 기록장
문제의 핵심은 기둥과 보를 설치하는 것이 아니라 삭제하는 부분이라고 생각합니다. 설치를 할 때는 설치하는 부분만 확인을 하면 되지만, 삭제는 삭제를 한 후 다른 모든 기둥과 보가 규칙을 만족하는 지를 일일히 확인해주어야 합니다. 물론 삭제하는 기둥이나 보의 근처에 있는 기둥과 보만 검사를 하는 방법도 있겠지만? 너무 많다....ㅎㅎ 그래서 그냥 다 검사해보는 방법으로 코드를 구현했습니다. 그래서 삭제 부분은 1) 기둥이나 보를 일단 삭제한다. 3) 그리고 모든 기존에 있던 모든 기둥과 보를 검사하며 그 자리에 있던 기둥과 보를 삭제하고 다시 넣었을 때 규칙을 성립하는 지 확인해주었다. => 모두 규칙을 성립한다? 그럼 그냥 삭제 / 하나라도 규칙 성립 x? 그럼 그냥 넣는다. 1 2 3 4 5 6 7 8..
설명 추가 예정 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 1..
설명 추가 예정 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 #include #include #include using namespace std; string toLower(string s){ string temp = ""; for(int 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 #include #include #include #include using namespace std; int dp[201][201] = {0, }; int solution(int n, int s, int a, int b, vector fares) { int answer = 1e9; // 왜 INT_MAX로 하면 안되는거지??? 에러생김...ㅎㅎ // 두 개를 더하면 int범위를 초과하게 되기 때문에...쓰레기값이 들어간다..!! ..
String으로 구현하면 되는 문제였다. 1~7단계까지 명시해준 조건의 내용을 그대로 구현해주면 되기 때문에 전혀 어려울 것이 없었다. 문자를 지우는 것은 모두 erase기능을 사용해서 지워주었다. 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 #include #include #include #include #include using namespace std; string solutio..
Bitmask + 조합을 활용해서 풀었다. 설명은 추후 추가 예정 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #incl..
Greedy + 완탐 문제이다. 투입될 친구의 수를 정하고 시작할 위치를 정한다. 그리고 시작할 위치에서 투입될 친구 수만큼을 투입하면 모든 취약 지점을 커버할 수 있는 지를 파악한다. 중요한 점은! 원형의 외벽이기 때문에 취약지점에 (weak.size()-1)만큼 원소를 더 넣어준다. ex) [1, 5, 6, 10] -> [1, 5, 6, 10, 13, 17, 18]이 된다. 그래야 이후에 계산을 할 때에 편하게 할 수 있다. 그리고 투입될 친구의 수를 1~dist_len까지 작은 수 부터 투입을 했기 때문에 그 수에서 바로 모든 취약지점이 커버된다면 바로 return 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 2..
문제에서 설명한 내용 그~~대로 구현하면 되는 간단한 문제였다. 다만, 여기서 말하는 균형잡힌 문자열을 구현하는 것이 약간 헷갈릴 수 있다. 그냥 문자열을 돌면서 열린 괄호와 닫힌 괄호의 수가 같은 지점까지가 u이고 나머지 부분은 v라고 생각하면 된다. 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 84 85 86 87 88 8..