- 알고리즘 분류 : DFS, 백트래킹 - 사용 언어 : JAVA - 문제 요점 DFS를 이용하여 선수들을 팀에 넣기 각 팀의 능력치를 구한 후, 차이를 절댓값으로 추출 참고한 블로그 : https://fbtmdwhd33.tistory.com/43 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { // 능력치 표 변수 public static int[][] map; // 방문 체크 변수 public static boolean[] visited; public st..
Algorithm
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA - 문제 요점 기둥과 보를 나눠서 관리. 건축물을 해제할 때는 해당 건축물을 제거 한 후, 남아있는 건축물의 정합성 테스트를 진행하는 방식 결과를 반환할 때 문제에 주어진 규칙에 맞게 반환해야함. 소스 설명은 주석을 참고해주세요. import java.io.IOException; public class Main { // 기둥과 보를 따로 관리. // 기둥 public static boolean[][] pillars; // 보 public static boolean[][] beams; // 건설한 구조물의 수 public static int count = 0; // 맵의 길이 public static int length; // 해당 위치의 보 정합성 체..
- 알고리즘 분류 : 다이나믹 프로그래밍(Bottom-up) - 사용 언어 : JAVA 백준 2293번의 동전1과 유사한 문제로 같이 풀어보면 좋습니다. 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new Bu..
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA - 문제 요점 1 : 뱀, 7 : 사과를 나타냄 방향 전환만 잘하면 되는 문제 큐를 이용해서 꼬리를 제거. 사과를 먹은 경우 꼬리를 제거하지 않음. 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.LinkedList; import java.util.Map; import java.util.Queue; import java.util.StringTokenizer; public class Main { // 뱀 public static..
- 알고리즘 분류 : 다이나믹 프로그래밍(Bottom-up) , knapsack알고리즘 - 사용 언어 : JAVA - 문제 요점 2차원 배열을 이용하여 풀이 Knapsack알고리즘을 이용하여 풀이. 아래 블로그에 설명이 잘 되어있길래 공유드립니다. https://fbtmdwhd33.tistory.com/60 [백준,BOJ 12865] 평범한 배낭(JAVA 구현, 추가풀이) -내 생각 이 문제의 경우 혼자 풀어보려고 해서 결과는 잘 나오는 것 같은데 어떤 반례에서 걸리는지 계속 오답처리를 받아서 결국 검색을 해봤는데, 이러한 무게와 가치가 함께 주어지는 문제 fbtmdwhd33.tistory.com 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import jav..
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA - 문제 요점 열쇠를 회전시켜 자물쇠의 빈 홈에 열쇠의 튀어나온 부분을 딱 맞춰 들어가면 true 아니면 false반환 아래의 표처럼 기존 자물쇠를 기준으로 열쇠의 길이만큼 상하좌우를 넓혀준다. 그리고, 열쇠를 움직이며 맞는지 확인하고 다 안맞는다면 열쇠를 회전 후 다시 확인 1 1 1 1 1 0 1 0 1 소스 설명은 주석을 참고해주세요. public class Main { // 2차원 배열 90도 회전 public static int[][] rotate(int[][] arr) { int n = arr.length; int m = arr[0].length; int[][] rotated = new int[m][n]; for (int i = 0; i <..
- 알고리즘 분류 : 다이나믹 프로그래밍(Bottom-up) - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenize..
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA - 문제 요점 문자열이 주어지면, 가장 짧게 압축한 문자열의 길이를 반환하는 문제 압축할 때 문자 1개 or 문자 2개 or 문자 3개 ... 씩 압축할 수 있다. 문자열을 압축하는 변수를 1로 시작하고 문자열의 길이까지 확인한 후, 가장 짧은 문자열의 길이를 반환하면 된다. 소스 설명은 주석을 참고해주세요. class Solution { public int solution(String s) { String[] strArr = s.split(""); int min = (int)1e9; // 문자열을 묶을 갯수를 1부터 점차 증가(문자열의 전체 개수까지) for(int num=1; num