일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- to display the conditions report re-run your application with 'debug' enabled
- 투에모스문자열
- 20055
- 날짜일수
- 2167. 2차원 배열의 합
- 14466
- 소가길을건너간이유6
- 이산수학
- 별자리 만들기
- 18222
- 프로그래머스
- 알고리즘
- 자바
- CMD
- Eclipse
- 21278
- jenkins
- Java
- documentationpluginsbootstrapper
- EC2
- docker
- 설정
- 2108_통계학
- SpringBoot
- dockercompose
- 이클립스
- 호석이두마리치킨
- Error
- 백준
- Error fetching remote repo 'origin'
- Today
- Total
목록자바 (24)
계단을 오르듯이
5원과 2원이 있기 때문에 거스름돈을 최소로 주기 위해 5원을 최대로 사용했다. 2원을 위해 5원을 최대로 사용할 경우 남은 거스름돈이 짝수가 되도록 하였으며, 나머지 거스름돈에서 2원으로 거스름돈을 주지 못할 경우는 2로 나누었을 때 나머지 값이 존재하는 상황이므로 -1을 출력하고, 그렇지 않은 경우는 거스름돈의 최소값을 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 package algo; import java.io.BufferedReader; import java.io.InputStreamReader; public class B_14916_거스름돈 { public static void main(String[] a..
길을 배열에 나타내는 것이 문제였다. 역시 어떻게 해야하나... 하면 언제나 풀이는 3차원 배열을 사용하는 것!!!! 길 역시 4개의 방향을 가지고 있기에 2차원으로 배열의 위치를 나타내고 +1차원을 추가해 3차원에서 4방향을 나타내도록 하여 해당 위치에서 상하좌우의 길 유무를 나타내도록 하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ..
규칙을 찾아보면 1부터 N까지일 경우 순서대로 홀수는 계속해서 버려지고 짝수는 뒤로 간다. 이 규칙을 찾아 for문을 돌렸고, 큐를 만들어 짝수는 큐에 넣어주었다. 그 후 while문을 통해 버림과 뒤에 겹침의 연산을 처리했고, while문의 연산은 짝수를 기준으로 하였으므로, 홀수에서는 무조건 while문을 들어가기 전에 한번 뒤로 붙임 처리를 해주어야 한다. while문 안에서도 연산 중 1개의 카드만 남게될 시 while문을 종료하고 그 카드를 출력해주어야 한다. 또한, N이 1일 경우는 위의 연산이 필요하지 않고, 무조건 1개의 카드가 존재하므로 바로 1을 리턴해주었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27..
가장 최소가 될 수 있는 값만 방문처리를 통해 구하면 성공할 것 같지만, 성공할 수 없다. 그 이유는 방문처리와 함께 가능한 최소의 값만을 구하는 것이 절대 최소가 될 수 없기 때문이다. 이유는 첫번째 최소의 값으로 방문처리를 하면 그 위치와 겹치는 곳을 제외한 곳에서 최소를 찾게 되기 때문이다. 그렇게 되면 한곳은 최소가 될 수 있지만 그 곳의 최소만을 보고 나머지를 생각하게 되면 나머지는 최대가 될 수도 있기 때문이다. 만약 첫번째 최소가 1이고, 그 곳을 제외한 곳의 최소가 99 라면 합은 100이다. 이 문제는 전체의 값을 최소가 되기 위함이므로 모든 경우를 고려해 적용해보는 완전탐색이 필요했다. 즉, 한곳에서는 최소가 아닌 값을 골라도 전체의 값이 최소가 될 수 있게 만들어야 한다. 그렇게 되면..
적절한 자료구조를 생각해야했고, 나는 HashMap과 ArrayList를 이용하였다. 적절한 오름차순의 정렬을 통해 순차적으로 문제를 풀어나갔다. 역시 알고리즘은 맞나..? 고민하지 말고 우선 해보는 시도가 나아가는 발걸음이다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869import java.util.*; class Solution { public int[] solution(String[] genres, int[] plays) { int[] answer = {}; int len = genres.length; Map ma..
- 문제를 잘 읽자!! 오늘도 깨달음..!! - 주석으로 설명을 대신한다. - 최소 거리를 구하는게 핵심~! import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class B_17135_캐슬디펜스2 { static int result = Integer.MIN_VALUE; static int count; public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = ..
- 주석으로 설명을 대신한다. - 역시 .. 상어는 쉽지 않아~ import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class B_17143_낚시왕 { static List shark; static int R, C, M, result; static int[][][] arr; // 상어크기, 인덱스 static boolean[] eat; public static void main(String[] args) throws Exception { BufferedReader in = new..
- 주석으로 설명을 대신한다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.StringTokenizer; public class B_17144_미세먼지안녕 { static int[][] dir = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 } }; static int R, C, T; static int[][] arr; static List airCleaner = new ArrayList();..