일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2018 KAKAO BLIND RECRUITMENT
- 알고리즘
- 2020 카카오 공채
- gcp
- Baekjoon
- 백준
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 2020 KAKAO BLIND RECRUITMENT
- c++
- 2019 KAKAO BLIND RECRUITMENT
- 2018 카카오
- 삼성 SW 기출문제
- set
- 부스트코스
- CS 스터디
- map
- 비트마스크
- Java
- 삼성 SW 역량테스트
- bfs
- 2018 KAKAO BLIND RECRUITMENT 1차
- 2018 카카오 공채
- dfs
- 젠킨스
- 2019 카카오 공채
- 자바
- gradle
- 카카오
- 프로그래머스
- 카카오 공채
- Today
- Total
목록c++ (6)
아무코딩

문제풀이 불이 켜진곳만 갈수 있고 불을 켜는 곳은 다른방이다. 그래서 갔던 곳도 다시 가보면 갈 수 있는 곳이 늘었을 수도 있다. 그래서 bfs를 반복해서 돌려야된다. 언제까지 돌려야되냐면 count가 증가하지 않을 때 까지 돌려야 된다. 불을 켜는 정보는 2차원으로 이루어진 vector로 구현된 adjacencyList 에 저장한다. 소스코드 더보기 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..

문제풀이 java 의 경우에는 비트마스크를 이용해서 풀어보았고, c++의 경우에는 dfs를 사용해서 풀었다. 7달 전에 작성한 방법과 다른방법으로 풀어보고자 비트마스크를 사용해보았다. 문제 풀이 방법은 구역을 다 나누어보고(완탐), 그렇게 나누었을 때 조건이 성립하는지(연결이 되는 상태인지)를 체크해준다. 조건이 만족할시에는 최솟값 업데이트를 해준다. 소스코드 java 더보기 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 ..

문제풀이 매우 아이디어가 좋은 문제이다. 루트 노트로부터 가장 멀리있는 노드로부터 또다시 가장 먼노드를 찾으면 그 두 노드가 지름을 담당하는 두노드다 그 두노드의 사이의 길이가 트리의 지름의 길이이다. 소스코드 더보기 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 #include #include using namespace std; typedef struct treeNode{ int edge,num; ..

문제풀이 문제 자체는 쉽다 문자열을 나눠서 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..
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 리턴...

문제풀이 마치 string처리를 연습하라는 문제 같았다. c++에 제공하지않는 replaceAll 기능과 string tokenzie 기능을 구현하였다. 전에 구현한 string tokenize대신 더 깔끔하다. vector string_tokenize(string str, char delimeter) { vector result; string token; stringstream ss(str); while (getline(ss, token, delimeter)) { result.push_back(token); } return result; } 위 함수는 자주쓰는 함수라 따로 정리해둬야겠다. string replaceSharp(string str) { size_t pos=0; size_t offset=0;..