728x90
728x90
[알고리즘] 이진탐색(이분탐색) - Binary Search
CS/알고리즘2022. 12. 18. 12:27[알고리즘] 이진탐색(이분탐색) - Binary Search

Binary Search정렬된 데이터 집합을 이분화 하면서 탐색하는 방법정렬되어 있어야 한다  보통 세 개의 변수를 지정해 두고 (ex : left, mid, right)찾고자 하는 값, 즉 mid의 값이 찾아낸 값보다 크면 mid는 찾아낸 값보다 오른쪽에 위치하고 작다면 왼쪽에 위치한다public static int binarySearch(int arr[], int x) { int mid; int left = 0; int right = arr.length - 1; // 배열을 다 돌때까지 반복 while (left

신고 결과 받기 - 프로그래머스 2022 카카오 블라인드 LV 1 JAVA
코딩테스트/프로그래머스2022. 12. 17. 21:35신고 결과 받기 - 프로그래머스 2022 카카오 블라인드 LV 1 JAVA

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2..

셔틀버스 - 프로그래머스 2018 카카오 블라인드 Lv3 JAVA
코딩테스트/프로그래머스2022. 12. 17. 21:08셔틀버스 - 프로그래머스 2018 카카오 블라인드 Lv3 JAVA

문제 설명 셔틀버스 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다. 이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자. 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m명의 승객이 탈 수 있다. 셔틀은 도착했을 때 도착한 순간에 대기열에 선 크루까지 포함해서 대기 순서대로 태우고 바로 출발한다. 예를 들어 09:00에 도착한 셔틀은 자리가 있다면 09:00에 줄을 선 크루도 탈 수 있다. 일찍 나와서 셔틀을 기다리는 것이 귀찮았던 콘은, 일주일간의 집요한 관찰 끝에 어떤 크루가 몇 시에 셔틀 대기열에 도착하는..

Java2022. 12. 17. 19:46Stream(2)

동작 순서 다음 스트림에서는 최종 작업인 findFirst 메소드를 호출합니다. 과연 출력 결과는 어떨까요? list.stream() .filter(el -> { System.out.println("filter() was called."); return el.contains("a"); }) .map(el -> { System.out.println("map() was called."); return el.toUpperCase(); }) .findFirst(); 요소는 3개인데 결과는 다음처럼 filter 두 번, map 이 한 번 출력됩니다. filter() was called. filter() was called. map() was called. 여기서 스트림이 동작하는 순서를 알아낼 수 있습니다. 모든..

Java2022. 12. 17. 15:53split() - JAVA 문자열 자르기

Split 특정 문자를 기준으로 문자열을 나누어 배열에 저장한다 String phoneNum = "010-0101-0101"; String[] strArr = phoneNum.split("-"); for(int i=0; i

Java2022. 12. 17. 13:39Stream(1)

스트림 Streams 자바 8에서 추가한 스트림(Streams)은 람다를 활용할 수 있는 기술 중 하나입니다. 자바 8 이전에는 배열 또는 컬렉션 인스턴스를 다루는 방법은 for 또는 foreach문을 돌면서 요소 하나씩을 꺼내서 다루는 방법이었습니다. 간단한 경우라면 상관없지만 로직이 복잡해질수록 코드의 양이 많아져 여러 로직이 섞이게 되고, 메소드를 나눌 경우 루프를 여러 번 도는 경우가 발생합니다. 스트림은 '데이터의 흐름’입니다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있습니다. 또한 람다를 이용해서 코드의 양을 줄이고 간결하게 표현할 수 있습니다. 즉, 배열과 컬렉션을 함수형으로 처리할 수 있습니다. 또 하나의 장점은 간단하게 병렬처..

입국심사 - 프로그래머스 LV3 JAVA
코딩테스트/프로그래머스2022. 12. 17. 13:09입국심사 - 프로그래머스 LV3 JAVA

문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항 입국심사..

코딩테스트/프로그래머스2022. 12. 16. 22:46숫자 비교하기 - 프로그래머스 LV0 JAVA

문제 설명 정수 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; } }

728x90
728x90
image