본문 바로가기

algorithm/Programmers66

프로그래머스 고득점 Kit 모음집&Lv1,2모음집 해시 폰켓몬: HashSet, Stack : 중복 제거 완주하지 못한 선수: HashMap( ) getOrDefault( ) 전화번호 목록: HastSet, HashMap, contains, containsKey() Arrays와 startswith() 추억점수 : HashMap 사용 달리기경주(Lv.1) : HashMap 사용, Arrays.asList(배열).contains(List 형) 스택/큐 스택(stack) 같은 숫자는 싫어 : 연속되는 숫자 찾기 stack, arraylist, list 형 => int[ ] 배열(for문 이용) 기능개발 : Queue, ArrayList, offer, poll, clear, peek 올바른 괄호 햄버거 만들기(Lv1) : stack 사용 힙(Heap) 더 맵.. 2023. 4. 16.
[JAVA] 디스크 컨트롤러 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에서 종료까지 : 11.. 2023. 4. 16.
[JAVA]더 맵게 + Priority Queue 힙(Heap Tree) 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 여러 개의 값 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 이진 트리 일종의 반정렬 상태(느슨한 정렬 상태) 를 유지 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도 즉, 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진 트리 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) 완전 이진트리(마지막 레벨을 제외하고 모든 레벨이 완전히 채워져 있는 트리의 형태)를 기본으로 하고 있고, 그 목적에 맞게 두 개의 타입으로 나뉜다. 1. Max-heap 루트 노드의 key는 무조건 해당 노드의 자식 노드들의 key보다 크거나 같다. 같은 .. 2023. 4. 16.
프로그래머스 Level.0 모음집 등차수열 연속된 수의 합 이진수 이진수 더하기 : 10진수 => 2진수, 8진수, 16진수 / 2진수, 8진수, 16진수 => 10진수 if문, 삼항연산자 점의 위치 구하기 최대공약수, 최소공배수 분수의 덧셈 팩토리얼 제곱근 정수 제곱근 판별 순서쌍의 개수 : 약수의 개수 구하기(제곱근이용) 합성수 찾기 : 합성수 구하기 소인수분해 : set, hashset, int[ ] -> Integer[ ] / Integer[ ] -> int[ ] 제곱수 판별하기 : Math.sqrt( )를 사용 배열 배열 뒤집기 알고리즘 자연수 뒤집어 배열로 만들기 자릿수 더하기 최빈값 구하기 배열 제거하기 진료 순서 정하기 배열 회전시키기 : list, stream 포함 2차원으로 만들기 : 2차원 배열 컨트롤 제트 : Arr.. 2023. 4. 15.
[JAVA] 문자열 밀기 문제 설명 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 제한사항 0 없다는 것 => -1 return class Solution { public int solution(String A, String B) { int answer = 0; String copyA = A; for(int i=0;i 2023. 4. 15.
[JAVA] 햄버거 만들기 문제 설명 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습니다. 예를 들어, 상수의 앞에 쌓이는 재료의 순서가 [야채, 빵, 빵, 야채, 고기, 빵, 야채, 고기, 빵]일 때, 상수는 여섯 번째 재료가 쌓였을 때,.. 2023. 4. 14.