전체 글 573

알파벳

📍 문제 설명 💡 접근 알파벳 방문배열을 만들어서 방문한 알파벳을 만날 때 마다 현재 거리를 리턴해주면 된다. 그리고 방문체크 해제해줘야 다른 루트도 정상적으로 확인할 수 있다! 👩‍💻 코드 import java.util.*; public class Main { static int n, m, k, dis, max; static int[][] board; static int[] ch,combi,pm; static String[] split; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; //알파벳 방문여부 static boolean[] checked = new boolean[26]; public static void main(String[] ar..

Algorithm/baekjoon 2022.01.17

암호 만들기

📍 문제 설명 💡 접근 시간초과 판정이 나서 이것저것 해봤는데, 최종 문제는 순열로 풀었다는 것이다. 오름차순 정렬을 순열을 뽑고나서 진행하는게 아니라 정렬 먼저 한 다음 조합으로 뽑아내면된다. 👩‍💻 코드 import java.util.*; public class Main { static int n, m, k; static int[][] board,dis; static int[] ch; static String[] split,pm; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static int[] combi; static ArrayList list = new ArrayList(); public static void main(String[]..

Algorithm/baekjoon 2022.01.17

영역 구하기========

📍 문제 설명 💡 접근 영역에 맞게 직사각형을 그리고나서 분리된 영역의 갯수와 넓이를 구하면 되는 문제였다. 👩‍💻 코드 import java.util.*; public class Main { static int n, m, k, answer, area; static int[][] board,dis,ch; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static int[] combi; public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); m = kb.nextInt(); n = kb.nextInt(); k = kb.nextI..

Algorithm/baekjoon 2022.01.17

36.편집 거리

📍 문제 설명 두 개의 문자열 A와 B가 주어졌을 때, 문자열 A를 편집하여 문자열 B로 만들고자 합니다. 문자열 A를 편집할 때는 다음의 세 연산 중에서 한 번에 하나씩 선택하여 이용할 수 있습니다. 삽입(Insert): 특정한 위치에 하나의 문자를 삽입합니다. 삭제(Remove): 특정한 위치에 있는 하나의 문자를 삭제합니다. 교체(Replace): 특정한 위치에 있는 하나의 문자를 다른 문자로 교체합니다. 이때 편집 거리란 문자열 A를 편집하여 문자열 B로 만들기 위해 사용한 연산의 수를 의미합니다. 문자열 A를 문자열 B로 만드는 최소 편집 거리를 계산하는 프로그램을 작성하세요. 예를 들어 "sunday"와 "saturday"의 최소 편집 거리는 3입니다. 입력 두 문자열 A와 B가 한줄에 하나씩..

Algorithm/이코테 2022.01.12

35.못생긴 수

📍 문제 설명 못생긴 수란 오직 2, 3, 5 만을 소인수로 가지는 수를 의미한다. 다시 말해 오직 2, 3, 5를 약수로 가지는 합성수를 의미한다. 1은 못생긴 수라고 가정한다. 따라서 못생긴 수들은 {1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ... } 순으로 이어지게 된다. 이 때, n번째 못생긴 수를 찾는 프로그램을 작성해라. 예를 들어 11번째 못생긴 수는 10이다. 입력조건 첫째 줄에 n이 입력된다.(1

Algorithm/이코테 2022.01.12

34.병사 배치하기

📍 문제 설명 💡 접근 바로 뒤쪽이 아닌 모든 뒤쪽 병사들의 전투력보다 커야한다. 뒤집어서 LIS 알고리즘을 적용해서 최장 증가 부분 수열의 길이를 구하고 병사의 수 - 길이를 해주면 남아있는 병사의 최대 수가 나온다. 👩‍💻 코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); ArrayList v = new ArrayList(); int[] dp = new int[n]; for(int i = 1; i

Algorithm/이코테 2022.01.12