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

문제풀이 문제 자체가 이분탐색인걸 알고푸는데도 이분탐색의 기준을 찾는 데 힘들었다.. 인터넷에서 풀이에대한 힌트를 참고하고 문제를 풀었다. 최소거리를 기준으로 계속 이분탐색을 진행한다. 현재 mid값이 현재 추정한 거리이고 해당 mid값보다 돌사이의 거리가 작은경우에는 바위를 제거 큰 경우에는 거리 최소값을 저장한다. 그리고 기준에 맞게 모든 바위를 제거한후 거리를 판단하여 제거가 더많이 되었으면 거리를 줄이고 제거가 기준보다 적게되었으면 거리 기준을 높인다. 소스코드 더보기 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 #include #in..

문제풀이 n진수숫자를 주르륵 나열한뒤 해당하는 턴의 1글자를 계속 저장해 나가면 되는 문제이다. n진수의 숫자를 구하는 식은 10진수의 수를 n으로 계속 나눠 몫이 0일때까지 나머지를 앞에다 계속 추가해 주는 방식이다. 초등학교 때 배운 2진수 구하는 식을 응용하면 만들 수 있다. string nNumber(int num, int n){ string result=""; while(num/n!=0){ int remainder = num%n; result = number[remainder]+result; num = num/n; } result = number[num%n]+result; return result; } 그리고 숫자를 얼마까지 구해놔야될지 고민하다가 m*t 개수만큼 구했다. 사실 이거보다 적게 잡..

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

문제풀이 구현은 쉽지만 문제 풀이 아이디어를 생각하는게 어려웠던 문제였다. 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 〉 통..

문제풀이 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..
문제풀이 like문을 이용하여 특정 칼럼에 특정 텍스트가 존재하는 지 확인하는 문법을 사용한 문제이다. 소스코드 더보기 1 2 3 4 5 6 7 8 9 SELECT a.animal_id, a.animal_type, a.name FROM animal_ins a LEFT OUTER JOIN animal_outs b ON a.animal_id = b.animal_id WHERE a.sex_upon_intake LIKE 'Intact%' AND ( b.sex_upon_outcome LIKE 'Spayed%' OR b.sex_upon_outcome LIKE 'Neutered%' ); 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/59045