반응형
SMALL

전체 글 205

[프로그래머스/java] 구명보트

https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 무게 제한이 있는 보트에 최대 2명씩 태워 보낼 수 있을 때 모든 사람을 태워보낼 수 있는 최소 횟수 구하기 사람들의 몸무게를 오름차순 정렬한 뒤 (최소 무게 + 최대 무게)로 판단하기 주석 설명 참고 import java.util.*; class Solution { public int solution(int[] people, int ..

JAVA/Algorithm 2021.01.02

[프로그래머스/java] 위장 (HashMap - 가능한 조합의 개수)

https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 여러개의 집합에서 원소를 0~1개 뽑아서 만들 수 있는 모든 조합의 개수 문제의 '스파이는 하루 최소 한 개의 의상은 입습니다.' 때문에 모두 안뽑는 경우 1 제외 import java.util.*; import java.util.Map.Entry; class Solution { public int solution(String[][] clothes) { HashMap map = new HashMap(); // 배열의 종류 별로 원소가 몇개인지 map에 담기 for(int i = 0; i < clothes.length; i++) { String ke..

JAVA/Algorithm 2021.01.02

[프로그래머스/java] 전화번호 목록 (문자열 비교 - hashCode) *2021 첫 글*

https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 문제의 핵심은 다른 해시 문제들과 마찬가지로 "다량의 반복적인 문자열 비교가 필요하다"입니다. 문자열을 비교하는 가장 빠른 방법중의 하나가 Hash 기법이고, 그냥 쌩으로 equals()나 startWith()를 사용하는 것은 노가다 문자열 비교입니다. 제가 알기로 해당 메소드에 해싱 기법이 들어가지는 않는 것으로 알고 있습니다. 알고리즘에서 문제에서 "노가..

JAVA/Algorithm 2021.01.01

[프로그래머스/java] 큰 수 만들기

https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 주어진 String에서 큰 수를 조합하는건줄 알았는데 그냥 순서 그대로 놓고 제거만해서 가장 큰 수를 만드는 것이었다. 2개씩 비교하여 작은 수를 삭제하는 방식 class Solution { public String solution(String number, int k) { String answer = ""; StringBuilder sb = new StringBuilder(number); // number 문자열 삭제가 용이하기위해 사용 int index = 1; int delCount = 0; while(delCount != k) { ..

JAVA/Algorithm 2020.12.29

[프로그래머스/java] 더 맵게 (PriorityQueue)

https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 연산 후 계속해서 제일 작은 값 2개를 찾아 진행하므로 최소힙 이용 PriorityQueue https://conanglog.tistory.com/222 [JAVA] 우선순위큐 PriorityQueue 사용하기 우선순위큐 (Priority Queue) 우선순위가 높은 엘리먼트가 먼저 나가는 자료구조 heap을 이용하여 구현! 이진트리 구조 O(nlo..

JAVA/Algorithm 2020.12.29

[JAVA] 우선순위큐 PriorityQueue 사용하기

우선순위큐 (Priority Queue) 우선순위가 높은 엘리먼트가 먼저 나가는 자료구조 heap을 이용하여 구현! 이진트리 구조 O(nlogn) 1. 최소힙 (MinHeap) 제일 낮은 숫자가 root 1.1 Priority Queue 선언 PriorityQueue intMinHeap = new PriorityQueue(); PriorityQueue stringMinHeap = new PriorityQueue(); 1.2 값 추가하기 intMinHeap.add(1); intMinHeap.offer(2); 반환 타입에 따른 차이 add() 와 offer() 의 차이 1.3 값 삭제 intMinHeap.poll(); intMinHeap.remove(); 1.4 root 값 확인 intMinHeap.peek..

JAVA 2020.12.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 Arrays.sort() 기본 오름차순 h번 이상 인용된 논문이 h편 이상인 h의 최댓값 구하기 즉, citations 배열의 h개의 논문 모두 h 이상이고 나머지는 h 이하인 h의 최대값 구하기 import java.util.*; class Solution { public int solution(int[] citations) {..

JAVA/Algorithm 2020.12.29

[프로그래머스/java] 가장 큰 수 (+ Comparator / compareTo)

https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr compareTo 함수에 대하여 https://conanglog.tistory.com/219 [JAVA] compareTo 함수 (숫자/문자 비교) 1. 숫자 비교 기준값.compareTo(비교값); 기준값 == 비교값 0 반환 기준값 > 비교값 1 반환 기준값 < 비교값 -1 반환 Integer ..

JAVA/Algorithm 2020.12.28

[JAVA] compareTo 함수 (숫자/문자 비교)

1. 숫자 비교 기준값.compareTo(비교값); 기준값 == 비교값 0 반환 기준값 > 비교값 1 반환 기준값 > 1 int형 선언으로는 안되나? compare() 사용 int a = 7; int b = 3; Integer.compare(x, y); 2. 문자 비교 같으면 0 반환 다르면 다른 문자의 개수만큼 리턴 근데 기준값과 비교값이 앞에서부터 동일한 문자가 나와야만 다른 문자 개수만큼 리턴이 가능 String str = "abcd"; str.compareTo("ab"); >> 4 - 2 = 2 str.compareTo("c"); >> -2 >> ? 위 코드의 두번째 예제는 왜 -2인가? 기준..

JAVA 2020.12.28

[프로그래머스/java] 다리를 지나는 트럭 (큐) (+ 주석 설명)

https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 큐 관련 함수 설명 참고 https://conanglog.tistory.com/217 [JAVA] Queue 관련 함수 (+ 함수 차이점) Queue 선언 Queue queue = new LinkedList(); // Integer 형 선언 Queue에 값 추가 1. queue.add(1); 2. queue.offer(2); add() 값 추가에..

JAVA/Algorithm 2020.12.26
반응형
SMALL
반응형
LIST