분류 전체보기 (115) 썸네일형 리스트형 [Java] 프로그래머스: 디스크 컨트롤러 개요하드 디스크는 한 번에 하나의 작업만 수행할 수 있다.우선순위 디스크 컨트롤러를 구현해야한다.어떤 작업 요청이 들어왔을 때, 작업의 번호, 작업의 요청 시각, 작업의 소요 시간을 저장해 두는 대기 큐가 존재.이 큐는 처음에는 비어있다.디스크 컨트롤러는 하드디스크가 쉬고 있고, 대기 큐에 작업이 있을경우 우선순위가 높은 작업을 디스크에게 수행시킨다.우선순위가 높은 것: 작업의 소요시간이 짧은 것, 작업의 요청 시각이 빠른 것, 작업의 번호가 작은 것하드디스크는 작업을 한 번 시작하면 작업을 마칠 때까지 그 작업만 수행한다.하드디스크는 작업을 마치자마자 바로 다음 작업 수행이 가능하다.각 작업에 대한 반환 시간: 작업 요청부터 종료까지 걸린 시간 알 수 없음 작업의 정보가 담겨있는 int[][] job.. [Java] 프로그래머스: 가장 큰 수 개요0 또는 양의 정수가 담긴 배열 numbers가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내라. 알 수 없음 int[] numbers: 0 또는 자연수가 들어있는 배열 (1 ~ 100,000, 10^5)각 원소의 값: 0 ~ 1,000(10^3) 정답은 String으로 리턴하라. 문제 풀이처음에는 정수 각 자리수를 문자로 변경한 뒤에,문자 배열에 넣고 정렬하는 식으로 문제에 접근했는데, 문제에서 요구하는 사항은 주어진 정수를 분해하는 것은 아니었으므로 잘못된 접근이었다. 결국 문자열로 바꾼 뒤 정렬하는 것이라고 생각했는데-> 사전 순으로 나열하면 왠지 될 것 같아서? 단순히 문자열 배열을 내림차순으로 정렬할 경우문자열끼리 직접 비교하게 되므로 두 번째 예제에서953430.. [Java] 프로그래머스: K번째수 개요배열 array의 i번째 숫자부터 j번째 숫자까지 정렬했을 때, k번째에 있는 수를 구하라 알 수 없음 int[] array: 숫자를 원소로 가지는 배열길이: 1 ~ 100, 10^2각 원소의 값: 1 ~ 100, 10^2int[][] commands: [i,j,k]를 원소로 가진 2차원 배열 길이: 1 ~ 50, 10^1 commands의 모든 원소에 대해 연산을 적용했을 때 나온 결과를 배열에 담아 return하라. 문제 풀이단순히 Array를 i부터 j까지 자른 뒤에, 정렬하고, k번째 위치를 구하면 되는 문제였습니다.이때 주의할 점은 문제는 인덱스를 1부터 시작한다는 겁니다. 핵심 메서드는 다음과 같습니다.int[] arr = Arrays.copyOfRange(array, front, e.. [Java][Collections Framework 완전 정복] Stack 클래스를 사용하지 않는 이유 및 대안 개요프로그래머스에서 스택 관련 문제를 풀다가 익명의 분께서 Java의 Stack 클래스는 사용을 지양하는 게 좋다는 글을 읽었다.Stack 자료구조는 매우 유명한 자료구조이고, 그걸 구현한 Stack 클래스를 사용하지 말라니? 의문점이 들어 Stack 클래스에 대해 자세히 조사하게 되었다. Stack 자료구조에 대해서 스택(Stack) 자료구조는 LIFO(Last In First Out)의 자료구조이다.이 말의 의미는 가장 나중에 삽입(push)된 데이터가 가장 먼저 삭제(pop)된다는 뜻이다. 또한 Stack 자료구조는 정해진 방향으로만 데이터를 쌓을 수 있으며,맨 위의 데이터(top)에 대해서만 접근이 가능해야 한다. Java의 Stack 클래스의 문제점Java의 Stack 클래스는 Vecto.. [Java] 프로그래머스: 전화번호 목록 문제 이해전화번호부에 여러 번호가 적혀있다.한 번호가 다른 번호의 접두어인지 확인하려고 한다. 알 수 없음 phone_book: 전화번호의 목록 (1 ~ 1,000,000, 10^6)※ 각 전화번호의 길이는 1 ~ 20※ 같은 전화번호는 들어있지 않다 -> 중복 X 접두어가 있으면 true, 없으면 false를 리턴하라 문제 풀이알고리즘 고득점 Kit 해시 태그에 있던 문제이니만큼처음에는 Hash를 이용한 컬랙션으로 접근했다. 이 문제는 전화번호라는 하나의 값에 대해서만 다루므로 HashSet을 사용했다. 핵심 풀이는 다음과 같다.1. 먼저 HashSet에 전화번호 목록을 넣어놓는다.Set set = new HashSet();for(String str: phone_book){ set.add(s.. [Java] 프로그래머스: 완주하지 못한 선수 문제 이해마라톤 선수들이 단 한명의 선수를 제외하고는 모두 마라톤을 완주했다.완주하지 못한 선수의 이름을 return하라. 알 수 없음 participant: 마라톤에 참여한 선수들의 이름이 담긴 배열 (1 ~ 100,000, 10^5)completion: 마라톤에 완주한 선수들의 이름이 담긴 배열 (1 ~ 100,000, 10^5)※ 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 구성※ 동명이인이 있을 수 있음. 완주하지 못한 선수의 이름을 return하라. 문제 풀이동명이인이 없었다면 단순히 Set으로 해결할 수 있겠지만,동명이인이 존재하기에 '각 이름마다 몇 명 있는지' 체크를 해줄 필요가 있습니다.그렇기에 HashMap을 써서 문제를 해결했습니다. 전체 코드import java.ut.. [Java] 프로그래머스: 폰켓몬 문제 이해연구실에 있는 N마리의 폰켓몬 중에서 N/2마리를 가져갈 수 있습니다. 폰켓몬은 종류에 따라 번호를 붙여 구분합니다.당신은 최대한 다양한 종류의 폰켓몬을 가지길 원합니다. 알 수 없음 nums: 폰켓몬의 종류 번호 (1 ~ 10,000, 10^4)※ 항상 짝수로 주어짐※ 종류 번호: 1 ~ 200,000 N/2마리의 폰켓몬을 선택하는 방법 중 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아,그때의 폰켓몬 종류 번호의 개수를 return하시오.※ 선택하는 방법이 여러 가지여도 한 가지 케이스만 return하라. 문제 풀이우리가 신경써야 할 건 폰켓몬의 종류밖에 없다. 중복되어서 입력된 값들을 제거만 할 수 있다면 무엇이든 상관없는 문제였다.나는 Collections의 Set을 사용하는 방법과 .. [Spring Boot] Jar vs War 배포 방법 비교 개요스프링부트를 사용하는 https://start.spring.io 에 들어가보면 Packaging 방식이 Jar과 War 두 가지로 구분되는 것을 확인할 수 있습니다. 두 가지 방식의 차이점이 궁금해져서 이 포스트를 시작하게 되었습니다. 핵심 개념기본적으로 JAR, WAR 모두 java의 jar 옵션을 이용해 생성된 압축(아카이브)파일이며,애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)을 패키징한 것이다. 1. JAR(Java Archive)Java Application이 동작할 수 있도록 자바 프로젝트를 압축한 파일라이브러리, 리소스, 보조 파일(property files)을 포함JRE(Java Runtime Enviornment)만 있어도 실행 가능스프링 부트.. 이전 1 2 3 4 5 ··· 15 다음 목록 더보기