일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- map
- 2020 카카오 공채
- bfs
- 프로그래머스
- 젠킨스
- 2018 카카오
- 백준
- 비트마스크
- dfs
- 2018 KAKAO BLIND RECRUITMENT 1차
- 카카오
- 삼성 SW 역량테스트
- 2020 KAKAO BLIND RECRUITMENT
- 부스트코스
- 알고리즘
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 2018 KAKAO BLIND RECRUITMENT
- 삼성 SW 기출문제
- 2019 카카오 공채
- 카카오 공채
- gradle
- Java
- CS 스터디
- 2019 KAKAO BLIND RECRUITMENT
- c++
- 2018 카카오 공채
- Baekjoon
- set
- gcp
- 자바
- Today
- Total
목록카카오 (8)
아무코딩
문제풀이 문제 자체는 쉽다 문자열을 나눠서 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을 이용하여서 새로운 문자열과 인덱스를 저장한다. 구현과정은 문제에 설명한대로 따라 짜면 무난하다. 소스코드 더보기 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
문제풀이 트라이 연습으로 매우 좋은 문제였다. 마지막에 카운트를 셀때는 조금 방법이 헷갈려서 시간이 걸린것 같다. 아직 트라이가 익숙하지 않아 전에 짰던 코드를 계속 참고하며 짜는데 연습이 좀더 필요한것 같다. 카운트를 셀때 count가 1인 경에는 더 내려가서 셀 필요가 없다 그때는 무조건 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 62 63 64 65 66 67 68 69 70 71 72 #incl..
오류나서 고생한 부분 int -> double형으로 형변환시 손실되는 데이터로 인한 오차가 생겨 문제가 있어 모든 score를 double로 바꾸니 해결되었다. 문제풀이 하루 종일 파싱 하는 문제이다. (짜면서 리팩토링도 진행하여서 시간이좀 걸리기도 했다....).이번 문제를 풀 때 함수 재사용을 위해 함수 자체는 신경 써서 만들었다. 각 페이지 별로 1. 헤드내용을 뽑고 2. 헤드내용안에서 metatag안의 url을 뽑은 뒤 3. map을 이용해 index와 매핑시킨다. 4. body내용을 뽑은 뒤 5. 기본점수를 계산하고, 외부 링크를 벡터로 저장한다. 페이지별로 모든 작업을 수행한 뒤 링크 점수를 업데이트하고 가장 큰 매칭점수의 인덱스를 반환시킨다. head태그와 body태그 내용을 뽑아내기 위하여..
문제풀이 이진 탐색을 활용한 문제 개인적으로는 아이디어 구현까지 나름 모의 코테 문제 중에서는 가장 시간을 많이 투자한 문제였습니다. 이진 탐색의 마지막 처리가 헷갈려 시간을 좀 쏟았습니다. 문제 범위 때문에 순차적으로 하나씩 제쳐나가면 시간 초과가 뜨기 때문에 이진 탐색을 활용해야 됩니다. 소스코드 더보기 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 #include #include #include #define STONE_MAX_VAL 20000000..
문제풀이 범위가 작아 완탐이 가능한 문제입니다. dfs를 사용하였고 문제에 제재 아이디 목록들을 구했을 때 아이디들이 나열된 순서와 관계없이 아이디 목록의 내용이 동일하다면 같은 것으로 처리하여 하나로 세면 됩니다. 라는 부분을 보고 중복방지와 순서가 필요없다는 부분에서 set이 생각나 set을 사용하였습니다. 아이디 목록도 set 그 목록자체의 목록도 set으로 구성하여 이중 set을 사용하였습니다. 소스코드 더보기 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 ..
문제풀이 코딩 테스트에 자주 사용되는 string_tokenize를 사용하는 문제입니다. 그리고 분리한 배열들의 순서를 정하는 아이디어는 길이를 이용하여 소팅하는 방법을 이용하였습니다. 문제자체는 어렵지 않지만 이미 만들어본 string_tokenize를 적용하려다보니 1,2,3문제중에서는 가장 좀 지저분하게 풀었고 시간을 쓴 문제였습니다. 소스코드 더보기 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..
문제풀이 출제의도는 스택 같으나 성질이 비슷한 vector를 이용하였습니다. 소스코드 더보기 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 #include #include using namespace std; vector box; vector basket; int cnt = 0; void moveCrain(int idx) { if (box[idx].size() > 0) { basket.push_back(box[idx][box[idx].size() - 1]); box[idx].pop_back(); } else return; ..