일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Baekjoon
- gradle
- 2019 카카오 공채
- 카카오
- 2018 KAKAO BLIND RECRUITMENT
- set
- CS 스터디
- 부스트코스
- bfs
- dfs
- 프로그래머스
- 2020 카카오 공채
- 알고리즘
- 2019 KAKAO BLIND RECRUITMENT
- 젠킨스
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 백준
- map
- gcp
- 2018 카카오 공채
- 삼성 SW 기출문제
- 2018 카카오
- c++
- 비트마스크
- 자바
- 2020 KAKAO BLIND RECRUITMENT
- 삼성 SW 역량테스트
- 카카오 공채
- 2018 KAKAO BLIND RECRUITMENT 1차
- Java
- Today
- Total
목록2019 KAKAO BLIND RECRUITMENT (7)
아무코딩
문제풀이 그냥 회전을 시키면 시간초과가 나는문제이다. 인덱스와 food time을 포함한 구조체(food)를 만들어 정렬한뒤 food time이 낮은거 부터 삭제해나간다. food time 이 낮은수는 그다음 높은 food time 에서 빼가며 계산해 주는걸 잊어서는 안된다. 왜냐하면 그만큼은 다 돌았기 때문에 이러한 점을 고려하여 돌다가 차이만큼 뺄 수없을때 모듈러 연산을 진행한다. 말이 너무 복잡하니 코드를 보면 이해가 쉬울거 같다. ' accumulate는 누적된 시간이라 생각하면되고 spend는 한번에 넘길 턴? 한번에 소비할 시간이라 보면된다. 소스코드 더보기 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 2..
문제풀이 크게 문제풀이는 유일성을 확인 -> 유일성을 만족하는 것중 최소성을 만족하는것을 구하기 순으로 풀이하였습니다. 비트마스크를 이용하였고 비트마스크를 적용하니 이전보다 문제풀이가 훨씬 깔끔해졌습니다. 1. 유일성 확인방법 vector을 키로가지는 Set을 만들어 여러 경우의 키를 가지는 경우를 넣어서 set 의 사이즈가 레코드의 개수와 같을때 유일하다 판단합니다. 여기서 키로 선택된 칼럼은 비트로 1 아닌건 0으로해서 계산하는데 유일성이 만족되면 해당 값을 벡터에 저장합니다. 2. 최소성확인방법 유일성을 만족하는 벡터를 차례로 돌며 & 연산을 진행합니다. a == a&b 일때 a는 b의 부분집합입니다. 그래서 b는 최소성을 만족할수 없기때문에 제외시킵니다. 이와같은 방법으로 모두 비교하여 최소성을 ..
문제풀이 정렬하는 문제이다. 실패율이 같은 경우 번호 순서라서 이미 정렬된 상태라서 stable_sort를 이용하여 따로 번호정렬을 하지않았다. 소스코드 더보기 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 #include using namespace std; typedef struct Stage{ int num; int arrival; int not_clear; Stage(){} Stage(int n){ num = n; arrival = 0; not_clear = 0; } }Stage; v..
문제풀이 1. 스트링을 " "단위로 잘라준다. 2. 앞의 명령어에 따라 로그 벡터에 를 추가해주면된다. 3. 이름 변경이 가능하다 -> id를 키로가지고 이름을 값으로 가지는 map을 만들어 업데이트를 반영해준다. 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 #include #include #include #include #include using namespace std;..
문제는 2번에 걸쳐 풀었다. c++로 푸는데 malloc을 사용하는 것이 맘에 걸려 class에 대한 공부 후 짜보았다. class사용에 조금 더 익숙해질 필요가 있는것 같다. 실행시간차이가 나는것으로 보아 malloc이 느리긴 느린것 같다. 결과를 보니 문제풀이 이진 탐색트리를 만드는 문제이다. BST 연습문제로 좋은 것 같다. 풀이1 malloc을 사용한 풀이이다. 더보기 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 ..
오류나서 고생한 부분 int -> double형으로 형변환시 손실되는 데이터로 인한 오차가 생겨 문제가 있어 모든 score를 double로 바꾸니 해결되었다. 문제풀이 하루 종일 파싱 하는 문제이다. (짜면서 리팩토링도 진행하여서 시간이좀 걸리기도 했다....).이번 문제를 풀 때 함수 재사용을 위해 함수 자체는 신경 써서 만들었다. 각 페이지 별로 1. 헤드내용을 뽑고 2. 헤드내용안에서 metatag안의 url을 뽑은 뒤 3. map을 이용해 index와 매핑시킨다. 4. body내용을 뽑은 뒤 5. 기본점수를 계산하고, 외부 링크를 벡터로 저장한다. 페이지별로 모든 작업을 수행한 뒤 링크 점수를 업데이트하고 가장 큰 매칭점수의 인덱스를 반환시킨다. head태그와 body태그 내용을 뽑아내기 위하여..
블록 위치를 따로 저장하고 여러 번 돌리는 게 효율적일 거 같아서 시도하였으나 매우 번거로워 방법을 바꾸고 이 방법으로 풀었다. 풀이 과정 풀면서 고려했던 사항 채울수 있는지 체크하는 방법 구현 -> 위에서 쭉 내려보며 0이 아닌 게 있는지 체크한다. 있으면 채울 수 없다. 하지만 가리던 게 지워져서 원래는 못 채우던걸 채울 수 있다. -> 여러 번 돌려서 지운 게 없을 때까지 돌린다. 소스코드 더보기 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 ..