- 알고리즘 분류 : 다이나믹 프로그래밍(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
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA - 문제 요점 입력받은 점수를 문자열로 받고 split함수를 이용하여 문자열 배열에 넣는다. 기준점 = 문자열의 길이 / 2 기준점 좌측 합계와 우측 합계가 같으면 LUCKY 출력, 다르면 READY 출력 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new Bu..
이 포스팅에서 작성하는 내용은 이것이 취업을 위한 코딩테스트다 (나동빈 지음) 에서 발췌하였습니다. (원본 소스코드 : https://github.com/ndb796/python-for-coding-test/) 1. 모험가 길드 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int[] arr = new int[num]; for (int i = 0; i < num; i++) { arr[i]=(sc.nextInt()); } // 배열 정렬 Array..
- 알고리즘 분류 : DP(동적계획법), Bottom-Up 방식 - 사용 언어 : JAVA - 문제 요점 마지막 열을 기준으로 윗 스티커를 선택했을 때와 아래 스티커를 선택했을 때의 최댓값을 구하여 큰 값을 반환 현재 열의 선택한 스티커를 기준으로 동시에 선택할 수 있는 스티커를 확인하면 된다. 참고한 블로그 : https://fbtmdwhd33.tistory.com/76 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void mai..
- 알고리즘 분류 : DFS + BFS - 사용 언어 : JAVA - 문제 요점 빙하가 녹는 데, 빙하가 두 개 이상의 그룹으로 나누어질 때까지의 최소 시간을 구하는 문제 바닷물과 인접한 빙하는 1년이 지날 때 마다 높이가 1만큼 녹는다.. BFS를 이용하여 바닷물과 인접한 빙하를 녹인다. DFS를 이용하여 빙하의 그룹의 갯수를 확인한다. 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.ut..