본문 바로가기

Algorithms

(98)
[Java] 2020 카카오 공채 코딩테스트 문제 : 자물쇠와 열쇠 (완전 탐색) --- 문제 --- 2020 KAKAO BLIND RECRUITMENT : 자물쇠와 열쇠 문제 --- 코드 --- // 13:07 시작 15:33 끝 -> 2시간 30분 걸림 ㅠ public class Prob3 { public static int count; public static void main(String[] args) { int[][] key = { { 1, 0, 0 }, { 1, 0, 0 }, { 1, 0, 0 } }; int[][] lock = { { 1, 1, 1, 1 }, { 1, 1, 1, 1 }, { 1, 1, 1, 1 }, { 0, 0, 1, 1 } }; int M = key.length; int N = lock.length; // 1. lock 에서 홀의 갯수 구하기 int ho..
[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..
[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 + ..

728x90
반응형