문제 설명 셔틀버스 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다. 이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자. 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m명의 승객이 탈 수 있다. 셔틀은 도착했을 때 도착한 순간에 대기열에 선 크루까지 포함해서 대기 순서대로 태우고 바로 출발한다. 예를 들어 09:00에 도착한 셔틀은 자리가 있다면 09:00에 줄을 선 크루도 탈 수 있다. 일찍 나와서 셔틀을 기다리는 것이 귀찮았던 콘은, 일주일간의 집요한 관찰 끝에 어떤 크루가 몇 시에 셔틀 대기열에 도착하는..
문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항 입국심사..
문제 설명 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 return하도록 solution 함수를 완성해주세요 제한사항 0 ≤ num1,num2 ≤ 10,000 입출력 예 num1 num2 result 2 3 -1 11 11 1 7 99 -1 // 삼항연산자 활용을 잘하자 class Solution { public int solution(int num1, int num2) { int answer = (num1 == num2) ? 1 : -1; return answer; } }
히스토그램 = 문장들중에서 해당 알파벳이 얼마나 나왔는지를 보여주는 지표 텍스트를 키보드로 입력받아 알파벳이 아닌 문자는 제외하고 영문자 히스토그램을 만들어보자. 대문자와 소문자는 모두 같은 것으로 간주하고, 세미콜론(;)만 있는 라인을 만나면 입력의 끝으로 해석한다. --출력-- 영문 텍스트를 입력하고 세미콜론을 입력하세요. It's now or never, come hold me tight Kiss me my darling, be mine tonight Tomorrow will be too late It's now or never, my love won't wait When I first saw you, with your smile so tender My heart was captured, my so..
Set 중복 저장 불가능 순서가 없다 (인덱스로 관리하지 않음) → 데이터 검색을 위해 iterator메서드로 iterator(반복자)를 생성하고 데이터를 가져와야 한다 HashSet 데이터 크기가 어느정도 예상되면서 삽입, 삭제가 빈번할 경우 사용하는 것이 좋다 객체를 넣으면 해당 객체의 hashcode 값을 사용하여 버킷을 찾고 해당 위치에 요소가 있는지 확인한다. 같은 객체라 판단되면 저장하지 않는다 서로 다른 객체여도 같은 hashcode값을 가질 수 있다. → 해당 버킷에 이미 값이 있다면 equals메서드를 통해 비교작업을 거친다. equals=false이면 LinkedList의 형태로 버킷에 값을 추가한다 class ExamMain { public static void main(String[..
대표적인 클래스 종류 ArrayList LinkedList Vector Stack ArrayList 가장 많이 사용되는 컬렉션 클래스 중 하나 가변배열이며 JDK 1.2부터 제공됨 배열 공간이 가득차면 새로운 배열을 만들어 기존의 내용을 복사 (복사하는 과정에서 지연이 발생하고, 데이터가 많아질수록 카피에 대한 지연시간 증가) 중간 데이터가 삭제되면 그 앞 인덱스에 있는 데이터들이 한 칸씩 당겨져온다 특정 데이터에 빠르게 접근할 수 있다 데이터의 양이 일관적이고 삽입 및 삭제가 거의 없는경우, 접근속도가 중요할 때 사용한다 (가변배열이지만 거의 변하게 하지 않을 때 사용하는 것이 좋다) class ExamMain { public static void main(String[] args) { // 생성은 가..
collection framework 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화, 정형화된 방법을 제공하는 클래스의 집합 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 라이브러리 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현 해 놓은것 인터페이스를 사용하여 구현된다 컬렉션 프레임워크를 구성하는 모든 클래스가 제네릭으로 표현되어 있다 ※ 배열의 문제점 : 크기가 정적이면서 불변이다 (객체 삭제 시 해당 인덱스가 공백) 주요 인터페이스 인터페이스 설명 클래스 List 순서를 유지하고 저장 중복 저장 가능 (1번 인덱스에 새 값을 넣으면 기존 값은 2번으로 밀려난다) ArrayList, LinkedList, Stack Queue, Vector Se..
제네릭 Generic 타입을 파라미터화 하여 실행시에 구체적으로 해당하는 타입으로 결정 → 특정(Specific)타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic)타입 장점 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지 가능 따로 타입을 체크하고 변환할 필요가 없다 (캐스팅 최소화로 인한 관리수월) 타입체크를 강력하게 하여 잘못된 데이터를 일반적인 원시, 참조 타입보다 안정성 확보에 좋음 코드의 재사용성이 높아짐 사용방법 타입 설명 Type Element Key Value Number 반드시 한 글자일 필요도 없고 위의 표와 일치할 필요도 없다. Just 암묵적 규칙 선언 파라미터로 명시할 수 있는 것은 참조타입이다 사용자가 정의한 클래스도 타입으로 올 ..