java
-
프로그래머스 Lv.2) 큰 수 만들기 (Greedy)알고리즘/프로그래머스 고득점 Kit 2020. 6. 3. 18:13
큰 수 만들기 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 풀이 고득점 Kit 중 greedy에 해당하는 문제다. 이 문제는 전에 풀었었는데, 다시 풀기에 실패한 문제다. Lv2지만 체감상 Lv3였다.. 도저히 모르겠어서 전에 풀었던 코드를 봤는데, 내 머릿속에서 나온 코드가 아닌 것 같다. 그래서 다른 분들의 풀이를 보고 다시 풀었다. 두 풀이 모두, 탐색 범위를 변경해가면서 가장 큰 갑을 넣어주는 로직이다. 가장 큰 값을 찾았을 때, 앞에 있는 수를 모두 지울 수 있다면 답에 더해주고, 아니면 범위를 재설정하는 방법이다. count를 소진할 때 까지 진행하면서, 답을 찾는다. start, end 그리고 max와 maxIdx를 설정해주는 이유는, 완전탐색의 경우 시간초과가 뜨기 때..
-
프로그래머스 Lv.3) [1차] 셔틀버스알고리즘/프로그래머스 카카오 2020. 6. 2. 21:33
2018 KAKAO BLIND RECRUITMENT 셔틀버스 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 [23:59,23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59] 18:00 programmers.co.kr 풀이 카카오 문제 중, 추석 트래픽을 풀 때 시간 문자열을 int형으로 변환하여 푼 경험 덕분인지 쉽게 풀었다. 우선, timetable에 저장된 시간 문자열을 시간과 분에 따라 int형으로 값을 저장해주었다. (시간 * 60 + 분) 이후, 문제 예제를 보면 앞서 줄 서있는 사람이 있더라도 시간이 버스 출발 시간마다 꽉 채워 타는 것이 아닌 경우가 있..
-
프로그래머스 Lv.3) 길 찾기 게임알고리즘/프로그래머스 카카오 2020. 6. 2. 21:19
2019 KAKAO BLIND RECRUITMENT 길 찾기 게임 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 풀이 우선 순위 큐를 통해 Node의 순서를 정해주려 했다. 하지만, compareTo 메소드를 잘못 설정해서인지, 아니면 우선순위큐가 지닌 unstable한 정렬 때문인지 제대로 순차 저장이 되지 않았다. 그래서 다른 분들은 어떻게 해결했는지 찾아보았다. 배열에 대해 Arrays의 sort를 이용하며, Comparator를 통해 정렬하는 방법으로 푼 글을 보았다. 그래서 바로 배열로 만들기로 결정..
-
프로그래머스 Lv.2) 기능 개발 (Stack&QUEUE)알고리즘/프로그래머스 고득점 Kit 2020. 6. 1. 18:14
기능 개발 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 �� programmers.co.kr 풀이 아침에 머리를 깨우기 위해 레벨 2부터 한 문제 풀고 시작하려고 문제를 봤는데, 새로운 문제가 없어서 풀었던 문제를 다시 풀었다. 키자마자 예전에 짰던 코드를 지우고, 새롭게 코드를 짜보았다. 전보다 더 효율적으로 코드를 짜서 행복했다 ㅎㅎㅎㅎ 하지만, 오늘 아침에 짠 코드보다 더 효율적인 코드가 있을 것이라고 생각한다. 아무튼, 블로그에 올린 적이 없던 문제기 때문에 기억을 최대한 살려 설명하겠습니다. 코드 1 = 처음 풀었을 때 ..
-
프로그래머스 Lv.3) 기지국 설치알고리즘/프로그래머스 2020. 6. 1. 17:48
Summer/Winter Coding(~2018) 기지국 설치 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 풀이 두번의 수정을 거쳤고, 푸는데 20분? 30분?정도 걸린 것 같다. 우선, 문제의 조건에 N이 2억 이하의 자연수 임을 보고 배열은 안된다는 판단을 내렸다. 된다 하더라도 효율이 안좋을 것이기 때문에 사용을 안하려고 마음먹었다. 다음으로 stations 배열은 오름차순으로 정렬되어 있다는 것을 보고, 이전에 설치된 5G망과 현재 설치된 5G망 사이에 커버하지 못한 아파트 세대..
-
프로그래머스 Lv.3) 숫자 게임알고리즘/프로그래머스 2020. 6. 1. 17:27
Summer/Winter Coding(~2018) 숫자 게임 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 � programmers.co.kr 풀이 처음에 문제가 쉽다고 생각하고 대충 풀었을 때, 30점 정도 나왔다. 처음 풀고 한 다섯시간 지나서 다시 풀기 시작했는데, 같이 공부하는 형이 풀어던 문제였고, B 배열이 정렬이 안되어 있다는 것을 알았다. ( 물론 혼자 풀었어도 눈치 챘을거다 ^^) 아무튼, 배열 정렬만 해주니까 바로 70점이 되었고, 나머지 30점이 시간 초과였다. 다시 수정하기가 귀찮아서, LinkedLis..
-
프로그래머스 Lv.3) 배달알고리즘/프로그래머스 2020. 5. 31. 23:03
배달 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 풀이 문제를 보고 많은 생각이 스쳐 지나갔다. MST가 먼저 떠올랐는데, 모든 경로를 잇는 것이 중요한 문제가 아니기 때문에 아니라고 생각했다. 다음은, 최단 거리 알고리즘이었다. 다익스트라(dijkstra) 이름이 기억나지 않았지만, 이 로직이 떠올랐다. 하지만, 처음에 풀었을 때는 edge를 따로 저장하지 않고, 주어진 road만 돌면서 우선순위 큐에 저장하고 최소 비용으로 잘 잇는다면 가능하지 않을까 싶었다. 결과는 40점, ..
-
프로그래머스 Lv.3) N-Queen알고리즘/프로그래머스 2020. 5. 31. 22:37
N-Queen 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr 풀이 체스 규칙을 알고있는데, 처음 코드를 짤 때 전체 대각선을 확인하지 않아서 한번의 수정을 거쳐 풀었다. 처음에는 1차원 배열인 visit을 남겨 각 column마다 방문 여부만 저장하고, 방문하지 않은 곳과 바로 위의 퀸과 위치 비교만 했다. 위치 비교는 좌상단, 상단, 우상단 세 부분만 체크를 했고, 결과적으로 40점이 나왔다. 행 = 세로, column 열 = 가로, row 틀렸다는 것을 확인하고 나서야, 대각선 확인에 대해..