Algorithm/Programmers
-
[Programmers] 가장 큰 수Algorithm/Programmers 2020. 5. 31. 21:26
[Level 2] 가장 큰 수 https://programmers.co.kr/learn/courses/30/lessons/42746# 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1026, 1062, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. Solution 왜 숫자를 합쳐서 비교할 생각을 못했을깡~! 솔루션 아닌 반성) comparator, comparabl..
-
[Programmers] 더 맵게Algorithm/Programmers 2020. 5. 31. 18:33
[Level 2] 더 맵게 https://programmers.co.kr/learn/courses/30/lessons/42626# 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + ( 두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 떄, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수 작..
-
[Programmers] 쇠막대기Algorithm/Programmers 2020. 5. 31. 15:24
[Level 2] 쇠막대기 https://programmers.co.kr/learn/courses/30/lessons/42585 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 레이저는 여는 괄호와 닫는 괄호의 인접한 쌍 '()'으로 표현한다. 또한 모든 '()'는 반드시 레이저를 표현한다. 쇠막대기의 왼쪽 끝은 여는 괄호 '('로, 오른쪽 끝은 닫힌 괄호 ')'로 표현된다.' 쇠막대기와 레이저의 배치를 표현한 문자열 arrangement가 매개변수로 주어질 때, 잘린 쇠막대기 조각의 총 개수를 return 하도록 solution 함수를 작성 Solution 먼저 문자열 arrangemen..
-
[Programmers] 다리를 건너는 트럭Algorithm/Programmers 2020. 5. 30. 18:57
[Level 2] 다리를 건너는 트럭 https://programmers.co.kr/learn/courses/30/lessons/42583 트럭은 1초에 1만큼 움직이여, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. solution 함수의 매개변수로 다리 길이 bridge_length, 다리가 견딜 수 있는 무게 weight, 트럭별 무게 truck_weights가 주어집니다. 이때 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 return 하도록 solution 함수 완성 하세요 Solution waitingQ에서 대기 하는 차의 무게가 다리가 지탱할 수 있는 무게보다 작거나 같을 때 다리위 트럭을 의미하는 onBridge 리스트에 추가한다. while문에서는 ..
-
[Programmers] 스킬트리Algorithm/Programmers 2020. 5. 30. 16:11
[Level 2] 스킬트리 https://programmers.co.kr/learn/courses/30/lessons/49993# 선행 스킬 순서 skill과 유저들이 만든 스킬트리를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성 스킬은 알파벳 대문자로 표기하며, 모든 문자열은 알파벳 대문자로만 이루어져 있다. Solution 스킬트리 배열(skill_trees[])의 원소에 대해 주어진 선행 스킬순서에 위배되지 않는지 체크하면서 answer++ Skill 클래스에 bool 타입의 used 속성을 만들어 isVaild() 함수에서 위배여부를 체크했다. 다른 사람들 풀이 보니까 자괴감 느껴짐 ,, 오래 생각 하고 풀어야겠다. ..
-
[Programmers] 프린터Algorithm/Programmers 2020. 5. 29. 15:19
[Level 2] 프린터 https://programmers.co.kr/learn/courses/30/lessons/42587 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기 목록의 가장 앞에 있는 문서(J)를 대기 목록에서 꺼냅니다. 2. 나머지 인쇄 대기 목록에서 J 보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기 목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. Solution LinkedList를 사용해 맨 앞에서 부터 하나씩 꺼내 나머지 문서중에 value가 높은 문서가 있는지 확인한다. (1) 있으면 리스트의 마지막에 넣고 (2) 없을 경우에는 요청한 문서인지 확인한다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 ..
-
[Programmers] 주식가격Algorithm/Programmers 2020. 5. 29. 12:35
[Level 2] 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. Solution cur은 현재 시점의 가격이고, 현재 시점을 기준으로 이전의 주식가격(prices[i])을 cur과 비교하면서 가격이 떨어지지 않은 기간을 증가하는 방식 정확성 테스트는 통과했지만 효율성 테스트는 통과하지 못했다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Solution { static int[] answer; static boolean[] flag; public int[] solution(int[] ..
-
[Programmers] 베스트앨범Algorithm/Programmers 2020. 4. 24. 01:54
[Level 3] 베스트앨범 https://programmers.co.kr/learn/courses/30/lessons/42579 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려한다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같다. 1. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 2. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 genres[]와 노래별 재생 횟수를 나타내는 plays[]가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하시오. Solu..