Algorithm

    [프로그래머스] 과일 장수 문제 - Java

    프로그래머스 스쿨의 Lv1 과일 장수 문제를 아래와 같이 풀었는데 시간초과가 떴다. class Solution { public int solution(int k, int m, int[] score) { int answer = 0; List intList = Arrays.stream(score) .boxed() .collect(Collectors.toList()); Collections.sort(intList, Collections.reverseOrder()); Stack stack = new Stack(); for (int i = 0; i < score.length - (score.length % m); i++) { stack.push(intList.remove(0)); if (stack.size() =..

    [Java] int 형(Primitive type)배열을 List로 + 내림차순( Stream 사용)

    배열의 원소가 int와 같은 primitive type(원시 타입)인 경우 오름차순 정렬만 가능합니다. => Arrays.sort(arr명, reverseOrder()) => 내림차순 정렬메소드 사용불가능 오름차순 정렬메소드 Arrays.sort(arr명); 그렇다면 어떻게 원시 타입 배열을 내림차순 정렬 할 수 있을까? 방법은 여러가지지만(원시 타입 배열을 참조 타입 배열로 변환), 여기서는 List로 변환 후 내림차순 해보겠습니다. 그리고 Java 8 이후부터는 Stream을 사용할 수 있는데, 아래와 같이 변환 가능합니다. int형(원시 타입) 배열을 Integer(참조 타입)형 List로 변환코드 List 리스트명 = Arrays.stream(int형 배열명) .boxed() .collect(Co..

    [Java] 자바의 데이터 타입(primitive type, reference type)

    자바의 변수의 데이터 타입은 primitive type과 reference type으로 나뉘는데, primitive type(원시 타입)과 reference type(참조 타입)에 대해 알아보자. 원시 타입(primitive type) primitive type(원시 타입은) 언어에서 사전 정의 되어 있는 데이터 타입으로, 쉽게 말해, 정수, 실수, 문자, 논리 리터럴등의 실제 데이터 값을 저장하는 타입이다. 참조 타입(reference type) reference type(참조 타입)은 객체(Object)의 번지를 참조(주소를 저장!!)하는 타입으로 메모리 번지 값을 통해 객체를 참조하는 타입이다. (call by reference) 원시 타입을 제외한 타입들(문자열, 배열, 열거, 클래스, 인터페이스..

    [Java] 약수의 개수 구하기

    https://chwan.tistory.com/entry/Java-%EC%95%BD%EC%88%98%EC%9D%98-%EA%B0%9C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0 에서 발췌하였습니다. 방법1 N의 약수 개수 구하는 방법을 생각했을 때 바로 떠오르는 방법은 N을 1부터 N까지의 숫자로 나눠 약수인지 판별하여 카운트를 해주는 방법이다. 코드로 구현해보면 아래와 같다. int N = 1000000000; int count = 0; for (int i = 1; i

    [Python] 힙 자료구조 / 힙큐(heapq)

    파이썬 힙 자료구조 파이썬 heapq 모듈은 heapq (priority queue) 알고리즘을 제공한다. 모든 부모 노드는 그의 자식 노드보다 값이 작거나 큰 이진트리(binary tree) 구조인데, 내부적으로는 인덱스 0에서 시작해 k번째 원소가 항상 자식 원소들(2k+1, 2k+2) 보다 작거나 같은 최소 힙의 형태로 정렬된다. heapq는 내장 모듈로 별도의 설치 작업 없이 바로 사용할 수 있다. 힙 함수 활용하기 heapq.heappush(heap, item) : item을 heap에 추가 heapq.heappop(heap) : heap에서 가장 작은 원소를 pop & 리턴. 비어 있는 경우 IndexError가 호출됨. heapq.heapify(x) : 리스트 x를 즉각적으로 heap으로 변..