본문 바로가기

프로그래머스6

[Java/프로그래머스/탐욕법] Level 2 : 구명 보트 문제 programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 처음 생각했던 방법(걍 틀림) 우선순위 큐에 넣어서 작은 것들부터 묶으려고 했다. 하지만 이 경우 people = {30, 40, 60, 70}, limit=100 일 때 (30,40) / 60 / 70 으로 3이 리턴된다. 옳은 답은 (70,30) / (60, 40) 으로 2가 리턴되어야 한다. 두번째로 생각한 방법 ( 효율성 테스트: 실패(.. 2020. 11. 10.
[Java/프로그래머스/DFS] 여행경로 문제 programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 코드 처음엔 인접하는 공항들을 전부 adjacent에 넣어야 하는데 어떻게 해야할까 끙끙댔다. 다행히 tickets는 양방향이 아닌 순서가 있는 것이라, dfs함수의 if문에서 조건을 걸러낼 수 있었다. import java.util.ArrayList; import java.util.Collections; public class Solution { boolean[] visited; //방문한지.. 2020. 11. 5.
[Java/프로그래머스/힙(Heap)] 이중우선순위큐 문제 programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 코드 woovictory.github.io/2018/03/19/JavaCollectionPriorityQueue/ [Java] Priority Queue 이번에는 Priority Queue에 대해서 공부를 해보았습니다. woovictory.github.io 자바의 PriorityQueue는 우선순위가 가장 작은 값을 출력하는 함수만 있기 때문에 이를 어떻게 다뤄서 최댓값을 출력할지 고민해보면 된다. 나는 마지막 원소를 제외한 모든 원소를 ArrayList에 담아놓고, 마지막 원소도 삭제한 뒤에 ArrayList 안의 값들을 다시 pq에 옮겨줬다. .. 2020. 10. 27.
[Java/프로그래머스/브루트 포스] 소수 찾기 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/42839# 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 � programmers.co.kr 코드 checkPrime 함수 2부터 √n 까지 나누면서 체크한다. (√n 을 기준으로 나눠지는 수가 대칭되기 때문이다. 이해가 안된다면 아래 링크 참고) https://programmers.co.kr/questions/11572 소수가 맞아도 ans라는 전역 ArrayList에 같은 값이 있는지 확인한다. 중복을 피하기 위함이다. pe.. 2020. 8. 29.
[Java/프로그래머스] H-Index 문제 https://programmers.co.kr/learn/courses/30/lessons/42747# 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 코드 단순 이중 for문 이용 class Solution { public int solution(int[] citations) { int answer = 0; int paper_num = citations.length; for(int i=0; i=i) answer = i; } return answer; } } 정렬이 필요 .. 2020. 8. 23.
[Java/프로그래머스] 124 나라의 숫자 문제 https://programmers.co.kr/learn/courses/30/lessons/12899?language=java# 코딩테스트 연습 - 124 나라의 숫자 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. programmers.co.kr 풀이 3진법을 이용해서 풀었다. 아래의 표를 이용해서 십진법 → 삼진법 → 124 나라의 숫자 순으로 숫자를 변환시켜 주었다. 십진법 3진법 124 나라의 숫자 1 1 1 2 2 2 3 10 4 4 11 11 5 12 12 6 20 14 7 21 21 8 22 22 9 100 24 10 101.. 2020. 8. 7.