IT warehouse (138) 썸네일형 리스트형 [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.. [Java] Progrmmers 코딩테스트 연습 : 구명보트 (그리디 알고리즘) --- 문제 --- 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution.. [Java] SW Expert Academy 1217번 문제 (S/W 문제해결 기본, 완전탐색) --- 문제 --- 1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 --- 코드 --- import java.util.Scanner; //import java.io.FileInputStream; import java.io.FileNotFoundException; public class Sw1217 { public static void main(String[] args) throws FileNotFoundException { //System.setIn(new FileInputStream("1217.txt")); Scanner sc = new Scanner(System.in); for(int test_case = 1; test_case [Java] SW Expert Academy 1216번 문제 (S/W 문제해결 기본, 완전탐색) --- 문제 --- 1216. [S/W 문제해결 기본] 3일차 - 회문2 --- 코드 --- import java.util.Scanner; //import java.io.FileInputStream; import java.io.FileNotFoundException; public class Sw1216 { public static void main(String[] args) throws FileNotFoundException { //System.setIn(new FileInputStream("1216.txt")); Scanner sc = new Scanner(System.in); int n = 100; char[][] board = new char[n][n]; int max = 1; // greedy +.. [Java] SW Expert Academy 1215번 문제 (S/W 문제해결 기본, 완전탐색) --- 문제 --- 1289. [S/W 문제해결 기본] 3일차 - 회문1 --- 코드 --- import java.util.Arrays; import java.util.Scanner; //import java.io.FileInputStream; import java.io.FileNotFoundException; public class Sw1215 { public static void main(String[] args) throws FileNotFoundException { //System.setIn(new FileInputStream("1215.txt")); Scanner sc = new Scanner(System.in); char[][] board = new char[8][8]; // greedy + .. [Java] Progrmmers 코딩테스트 연습 : 큰 수 만들기 (그리디 알고리즘) --- 문제 --- 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number k return 192.. [Java] Progrmmers 코딩테스트 연습 : 조이스틱 (그리디 알고리즘) --- 문제 --- 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 예를 들어 아래의 방법으로 JAZ를 만들 수 있습니다. - 첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다. - 조이스틱을 왼쪽으로 1번 조작하여 커서를 마지막 문자 위치로 이동시킵니다. - 마지막 위치에서 조이스틱을 아래로 1번 조작하여 Z를 완성합니다. 따라서 11번 이동시.. 이전 1 ··· 10 11 12 13 14 15 16 ··· 18 다음