본문 바로가기

알고리즘 문제 풀이

(24)
[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] 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 코딩테스트 연습 : 조이스틱 (그리디 알고리즘) --- 문제 --- 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 예를 들어 아래의 방법으로 JAZ를 만들 수 있습니다. - 첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다. - 조이스틱을 왼쪽으로 1번 조작하여 커서를 마지막 문자 위치로 이동시킵니다. - 마지막 위치에서 조이스틱을 아래로 1번 조작하여 Z를 완성합니다. 따라서 11번 이동시..
[Java] Progrmmers 코딩테스트 연습 : 여행경로 (DFS/BFS) --- 문제 --- 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 ICN 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다. 모든 도시를 방문할 수 없는 경우는 주어지지 않습니다. 입출력 예 tickets retur..
[Java] Progrmmers 코딩테스트 연습 : 단어변환 (DFS/BFS) --- 문제 --- 문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 hit, target가 cog, words가 [hot,dot,dog,lot,log,cog]라면 hit -> hot -> dot -> dog -> cog와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지 retu..
[Java] Progrmmers 코딩테스트 연습 : 카펫 (DFS/BFS) ---문제--- 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 1000 이하인..
[Java] 백준 알고리즘 15649, 15650 번 문제 : N과 M 시리즈 (완전탐색) --- 1번 문제 --- 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. --- 코드 --- import java.util.LinkedList; import java.util.Scanner; public class Bj15649 { static boolean[] checked ; static LinkedList ..
[Java] Progrmmers 코딩테스트 연습 : 숫자 야구 (완전탐색) ---문제--- 문제 설명 숫자 야구 게임이란 2명이 서로가 생각한 숫자를 맞추는 게임입니다. 각자 서로 다른 1~9까지 3자리 임의의 숫자를 정한 뒤 서로에게 3자리의 숫자를 불러서 결과를 확인합니다. 그리고 그 결과를 토대로 상대가 정한 숫자를 예상한 뒤 맞힙니다. ​ * 숫자는 맞지만, 위치가 틀렸을 때는 볼 * 숫자와 위치가 모두 맞을 때는 스트라이크 * 숫자와 위치가 모두 틀렸을 때는 아웃 ​ 제한사항 질문의 수는 1 이상 100 이하의 자연수입니다. baseball의 각 행은 [세 자리의 수, 스트라이크의 수, 볼의 수] 를 담고 있습니다. ---코드--- public class Dfs_3 { public static void main(String[] args) { int[][] basebal..

728x90
반응형