본문 바로가기

자바

(73)
[Java] 백준 알고리즘 7568 번 문제 : 덩치 (Brute Force) --- 문제 --- 몸풀기용으로 풀기 좋은 ^>^ (허세..) Brute Force 문제 였습니다. 간단히, 값을 입력 할 때, 이전에 입력된 값들과 하나씩 비교를 해가면서 덩치의 등수를 세가는 방식으로 문제를 풀었습니다. --- 코드 --- import java.util.Scanner; public class Bj7568 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); System.out.println(num); int[][] list = new int[num][2]; int[] result = new int[num]; // Input 받기 및 전 사람들과 덩치 비교..
[Java] Progrmmers 코딩테스트 연습 :가장 큰 수 (Array,배열) ---문제--- 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. ---코드--- import java..
[Java] Progrmmers 코딩테스트 연습 : K번째수 (정렬) ---문제--- 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100..
[Java] Progrmmers 코딩테스트 연습 : 디스크 컨트롤러 (Heap) --- 문제 --- 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에..
[Java] 2020 카카오 공채 코딩테스트 문제 : 가사 검색(자료구조/ Trie 자료구조) --- 문제 --- 2020 KAKAO BLIND RECRUITMENT : 가사 검색 제시된 단어들 중 에서, 원하는 단어와 조건이 맞는 경우의 수를 세는 문제 정확도와 효율성을 둘 다 본다는 특징이 있는 문제였습니다. --- 코드 --- 문제를 보고 처음에 딱 든 생각은 완전탐색 이었습니다. queries 에 있는 단어들을 하나씩 가져와서 words에 있는 길이가 같은 단어들을 모두 검사하는 방식 입니다. 정확도에서는 만점을 받았지만, 역시나 효율성에서 막혔습니다 ㅠㅠ 그래서 어떤 방법이 좋을까 생각하다가, 카카오 페이지에 올라와있는 해설을 보게되었습니다. https://tech.kakao.com/2019/10/02/kakao-blind-recruitment-2020-round1/ 2020 신입 개발자..
[Java] 2020 카카오 공채 코딩테스트 문제 : 괄호 변환 --- 문제 --- 2020 KAKAO BLIND RECRUITMENT : 괄호 변환 문제 괄호가 올바르게 열리고, 닫히지 않는 경우를 수정해주는 문제 -> 알고리즘의 해답은 문제 속에 있고, 제시된 해답에 따라 코드를 작성하면 되는 굉장히 고마운 문제였다. --- 코드 --- import java.util.Stack; public class Prob2 { public static void main(String[] args) { String p = ")("; if(check(p)) { System.out.println(p); return; // return p; } System.out.println(divide(p)); } public static String divide(String p) { // 1...
[Java] 2020 카카오 공채 코딩테스트 문제 : 문자열 압축 (완전 탐색) --- 문제 --- 2020 KAKAO BLIND RECRUITMENT : 문자열 압축 문제 반복 하는 문자열을 압축하여 표현할 때, 가장 짧은 압축 문자열 길이를 출력 하는 문제 --- 코드 --- public class Prob1 { public static void main(String[] args) { String s = "aabbaccc"; // 1. 변수 설정 int repeat = 1; int min_len = s.length(); // 2. 단위 완전 탐색 for (int l = 1; l min_len) { break; } ++turn; } // 2-2. 추가로 남는 문자열 추가 if (s.length() % l > 0) { len += s.length() % l; } // 2-3. 최소길..
[Java] Progrmmers 코딩테스트 연습 : N으로 표현 (동적계획법 : Dynamic Programming) --- 문제 --- 문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 return 합니다. 입출력 예 N number..

728x90
반응형