일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs
- 2018 카카오
- 백준
- map
- gradle
- 2019 카카오 공채
- 자바
- set
- c++
- 2019 KAKAO BLIND RECRUITMENT
- CS 스터디
- bfs
- 2020 KAKAO BLIND RECRUITMENT
- 2018 KAKAO BLIND RECRUITMENT
- Baekjoon
- 삼성 SW 기출문제
- 2020 카카오 공채
- 알고리즘
- 젠킨스
- Java
- 2018 KAKAO BLIND RECRUITMENT 1차
- 프로그래머스
- 부스트코스
- 2018 카카오 공채
- 카카오 공채
- 비트마스크
- gcp
- 카카오
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 삼성 SW 역량테스트
- Today
- Total
목록알고리즘 (76)
아무코딩
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dh0hiR/btqDMjhDhtJ/xvmmFS3GoMM1XTcyY1ghH0/img.png)
문제풀이 문제 자체는 쉽다 문자열을 나눠서 head부분은 소문자로 모두 변경한뒤 정렬하고 숫자부분은 문자말고 int로 정렬을 진행한다. 우선순위는 head -> num 순이고 주의할점은 tail이 null일 경우를 대비하여 숫자가 계속나오다 숫자가 아닐때 처리도 할뿐더러 아무것도 안나왔을 때에 대한 처리도 해주어야한다. 이문제를 풀며 string을 lower case로 변경하는 쉬운방법을 터득했다. 과 을 include 하고 transform(head.begin(), head.end(), head.begin(),::tolower); 여기서 ::tolower 때문에 을 사용하는거다. 원래 tolower라는 함수가 char를 소문자로 바꿔주는 함수다. 를 진행하면 된다. 소스코드 더보기 1 2 3 4 5 6..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bPQrbJ/btqDO2L0I3p/MppR4mVwCiBDZkDwK6PSN0/img.png)
문제풀이 쉽다 next_permutation을 통해서 다 완탐해주면 된다. 소스코드 더보기 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 #include #include #include #include using namespace std; int N;//수의 개수 int A[100]; int num_plus, num_minus, num_mul, num_div; void combination(); vector oper; int max_sum..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/beVPxl/btqDLE6GRHx/ppXQnkM74bAm2QFaNkPRDk/img.png)
문제풀이 구현은 쉽지만 문제 풀이 아이디어를 생각하는게 어려웠던 문제였다. deque를 사용하여 0을 다시 넘는 경우를 11->1인 경우가 11 ->13 이 되도록 변경하여 계속 업데이트 해준뒤 next_permutation을 사용하여 완탐을 진행하였다. 먼저 갯수를 1부터 점점 키워나가며 -> 매 갯수 시작마다 deque를 초기화 -> 넥퍼뮤를 통한 완탐으로 모든 경우를 따져가며 성공시 해당갯수를 반환하여 끝내는 방식으로 구현하였다. 소스코드 더보기 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..
MAP Map container 노드기반으로 이루어져 있고 균형 이진트리 구조(레드블랙 트리로 구현되어 있다.) key와 value로 이루어져 있으며 이는 pair 객체로 저장 Unique Key key는 고유한 값이므로 중복이 불가능하다. 중복 key는 multimap에서 가능하다. Ordered map도 set과 마찬가지로 삽입이 되면서 자동으로 정렬이 된다.(default는 less/오름차순) 연관있는 두 값을 함께 묶어서 관리하되, 검색을 빠르게 하고싶은 경우에 사용한다. 기본적인 map 사용법 멤버함수 기능 map.size() map 의 노드 개수를 리턴. map.empty() map의 사이즈가 0인지 아닌지를 확인. map.begin() map의 첫 번째 원소를 가리키는 iterator 리턴...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bF3qK9/btqDISq2ZHh/RPkWvAvLtsOgxYgF8fkCM1/img.png)
쉬운문젠데 생각보다 걸렸다.. 저지른 실수가 너무 많았다.. dfs를 할때 시작 visited 처리, 카운터 증가, 음수 처리 등 평소에 잘 안하는 실수가 잦았다.. 문제 자체는 되게 평이하다. 첫줄 마지막줄이 항상 0이라는 조건이 있어서 범위끝처리가 필요없어서 좋았다. 문제풀이 첫줄 마지막줄이 항상 0이라는 조건이 있어서 범위끝처리가 필요없어서 좋았다. 높이가 0보다큰빙산을 벡터에 저장하고 감소 연산을 한뒤에 따로 맵에서 한꺼번에 빼주었다. 이렇게하면 접근도 빠르고 녹을 때 먼저 0이되어 데이터의 오류가 나는 일이 없다. 그리고 빙산의 분리는 빙산전체 카운트와 시작점부터 dfs를하여 갯수 비교를 통해 진행하였다. 소스코드 더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tpxDw/btqDHseI9Cm/UU44AqVfzNxS6LITCA5YGK/img.png)
더보기 채점을 시작합니다. 정확성 테스트 테스트 1 〉 통과 (0.06ms, 3.79MB) 테스트 2 〉 통과 (0.00ms, 3.8MB) 테스트 3 〉 통과 (1.80ms, 3.84MB) 테스트 4 〉 통과 (0.00ms, 3.8MB) 테스트 5 〉 통과 (0.41ms, 3.82MB) 테스트 6 〉 통과 (0.11ms, 3.84MB) 테스트 7 〉 통과 (5.96ms, 3.88MB) 테스트 8 〉 통과 (8.41ms, 3.77MB) 테스트 9 〉 통과 (1.00ms, 3.8MB) 테스트 10 〉 통과 (2.40ms, 3.86MB) 테스트 11 〉 통과 (9.75ms, 3.86MB) 테스트 12 〉 통과 (0.00ms, 3.86MB) 테스트 13 〉 통과 (0.78ms, 3.91MB) 테스트 14 〉 통..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pd84x/btqDISQOq5p/iD2e1TootlgKtIejj0ykR0/img.png)
문제풀이 간단한 시뮬레이션 문제이다. 시뮬레이션을 오랜만에 풀어서 그런가.. visited 초기화를 매번해주지않아 빨리 풀 문제에 시간을 좀 쓴거같다. 덕분에 xcode에서 디버깅하는 법을 터득했다.. 소스코드 더보기 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 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/v6hlW/btqDH1GWI65/KtDIx49lNzvwsF7ukIrd80/img.png)
문제풀이 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 using namespace std; map dict; void initDictionary(){ for(int i=0;i