일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c++
- CS 스터디
- gradle
- 2018 카카오 공채
- 젠킨스
- 2020 카카오 공채
- Java
- 2020 KAKAO BLIND RECRUITMENT
- gcp
- 삼성 SW 역량테스트
- 자바
- 백준
- 삼성 SW 기출문제
- dfs
- 2019 KAKAO BLIND RECRUITMENT
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 2018 카카오
- 카카오
- Baekjoon
- map
- 부스트코스
- 카카오 공채
- 프로그래머스
- 2019 카카오 공채
- 알고리즘
- 2018 KAKAO BLIND RECRUITMENT
- bfs
- 2018 KAKAO BLIND RECRUITMENT 1차
- 비트마스크
- set
- Today
- Total
목록2020 KAKAO BLIND RECRUITMENT (6)
아무코딩
문제풀이 트라이를 이용한 문제이다. 실제 공채때는 이렇게 풀지 못해서 많이 효율성 부분에서 점수가 많이 깎였었다. 특이한 점은 ?가 있다는 점인데 트라이를 이용하기 좋게 접미사나 접두사로만 물음표가 주어진다. 자리수 별, 앞뒤 별 트라이 구조를 모두 만들어서 ?가 나오자마자 카운트를 반환하게 한다. 끝의 ?유무를 확인하여 reverse한 트라이를 쓸지 그냥 쓸지 정하면 된다. 소스코드 더보기 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 ..
문제풀이 구현은 쉽지만 문제 풀이 아이디어를 생각하는게 어려웠던 문제였다. 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..
더보기 채점을 시작합니다. 정확성 테스트 테스트 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 〉 통..
풀이 문제에서 요구한 조건대로 재귀코드를 작성하면 된다. 소스코드 더보기 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 #include #include #include #include using namespace std; string divide_str(string str) { int cntl=0, cntr=0; for (int i = 0; i
풀이 bfs를 사용한다. 이유는 특정 depth의 모든 경우를 탐색하기 위함. 방문 위치 표시 방법 : 가로모드 1개, 세로 모드 1개 고려한 2차원 visted 배열로 구성 한 번에 할 수 있는 것들 : 상하좌우 이동, 회전 회전 경우의 수는 위와 같이 그려서 케이스를 분리해 보았다. 검사 시 중복을 최소화하는 방향으로 묶어주었다. 파란색 동그라미는 저장되는 좌표 빨간 글씨는 거치는 점이다. 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 ..
풀이과정 검사는 단위별로 진행한다. 일치하는 경우에는 그대로 다음 단위를 검사 일치하지 않는 경우에는 출력할 string에 출력한다. 이때, 1인경우에는 숫자를 출력하지 않으므로 따로 처리해준다. 주의사항 문자열의 길이가 1인경우가 존재한다 이를 잘 처리해줘야됨. 테스트 케이스 5번이 아마 문자열 길이가 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 #include #include #include #include using namespace std; int u..