일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2167. 2차원 배열의 합
- CMD
- 알고리즘
- 프로그래머스
- 이클립스
- 자바
- 18222
- documentationpluginsbootstrapper
- to display the conditions report re-run your application with 'debug' enabled
- 14466
- Error fetching remote repo 'origin'
- Eclipse
- SpringBoot
- 호석이두마리치킨
- 2108_통계학
- 소가길을건너간이유6
- Java
- 별자리 만들기
- Error
- 이산수학
- 백준
- 21278
- docker
- 설정
- 날짜일수
- jenkins
- 투에모스문자열
- EC2
- dockercompose
- 20055
- Today
- Total
목록Java (58)
계단을 오르듯이
롯데이커머스의 코딩테스트를 본 후 비슷한 문제를 찾아보았다. 오답노트랄까... 먼저 문제를 해결하고자 했던 내가 착각했던 부분..!!!이 있었다. while문의 반복을 빠져나오기 위한 조건을 생각했고, 최대 빙하의 높이가 10까지라고 제시되었기에 while문을 10번까지만.. 돌렸다. 아차!!! 빙하가 10이라고 해서 10번안에 다 녹는게 아니지!!! 안에 있는 빙하는 겉의 빙하가 녹기전에는 절대 녹지 않기 때문이다. 그리고 주의해야 할 점은 배열을 순차적으로 빙하가 녹을 것을 계산하고, 바로 녹임을 처리하면 그 다음 빙하에서 0의 값을 확인할 때 오차값이 발생하여 정확한 계산의 방식이 될 수 없다는 것이다. 따라서, 배열 복사를 진행했다. 나의 풀이는 아래와 같다. package baekjoon; im..
주어진 이중 배열은 서로 연결을 확인하는 배열로 이용하고, 선택된 노드인지를 확인하기 위한 배열을 하나 만들었다. dfs 재귀방식을 통해 네트워크의 연결을 알아내었다. import java.util.*; class Solution { public int solution(int n, int[][] computers) { int answer = 0; boolean[] visited = new boolean[n]; for(int i=0;i
'+' 와 '-' 를 모든 경우에 대입하여 알아보는 문제이므로, 부분집합을 이용해서 선택되면 +를 안되면 -를 연산하도록 했다. class Solution { static int count; public int solution(int[] numbers, int target) { int answer = 0; boolean[] add = new boolean[numbers.length]; subset(0,add,numbers,target); answer = count; return answer; } private static void subset(int cnt, boolean[] add, int[] numbers, int target){ if(cnt == numbers.length){ int sum = 0;..
소수 찾기에서 2부터 시작하여 해당 num의 루트 Math.sqrt(num)까지를 포함해 구하였다. HashSet 자료구조를 이용해 개수를 구하였다. import java.util.*; class Solution { static Set set = new HashSet(); public int solution(String numbers) { int answer = 0; int len = numbers.length(); boolean[] visited = new boolean[len]; int[] choice = new int[len]; for(int i=1;i
처음에는 먼저 비교 후 길이가 다를시 어떻게 비교를...하지...하다가 고민끝에 정답을 찾아보았다. 오..역시..천재들이 많다....! 비교하는 값 A와 B를 앞뒤로 더해서 내림차순을 구한다!!! 주의!! 문제에서는 0 또는 양의 정수라고 나와있다. 따라서 모든 수가 0만이 존재할 때 000... 이 될 수 있음을 유의하여 0만을 출력하도록 하는 조건문을 추가해야한다. 언제나 문제는 잘 읽고 문제 속에서 모든 경우의 수를... 생각해야하는 알고리즴~! import java.util.*; class Solution { public String solution(int[] numbers) { String answer = ""; String[] str = new String[numbers.length]; for..
스택을 이용해 풀이하였다. 여기서 가장 중요했던 것!!! Math.round() 는 long을 반환하므로 (int) Math.round()로 형변환을 해주어야 int형이 된다는 것. 두번째, Math.round()는 반올림!!!! 이 문제에서는 반올림이 아닌 0.1의 소수점이 존재해도 올림을 해주어야 하는 날짜 계산이기에 Math.ceil()을 이용해야 했다!!! Math.ceil()은 무조건 올림이다. 날짜 계산은 100에서 작업완성도를 빼준 후 작업속도로 나누어 나머지가 발생하면 올림을 하여 날짜를 구하였다. 해당 일자가 현재 스택 안에 있는 날짜보다 크면 스택에 있는 작업을 빼주고, 같거나 작을 시 다시 스택에 넣어주었다. 스택에 들어있는 작업들은 모두 한번에 완성될 작업들을 의미한다. 마지막 스택..
조합의 기본적인 문제이지만,, 새벽에 풀어서 그런가 문제를 잘못읽고 쉽지 않게 푼.. 문제..ㅎㅎ..ㅠㅠ 우선, 배열의 2차원에 종류가 들어오고 중복 체크를 위해 Map을 사용하였다. 예를 들어, 상의, 하의, 모자의 종류가 있다고 한다면 각각 하나씩 입을수도 있고, 3가지 종류 중 하나만 입을수도 있다. 이 부분을 위해 각 종류의 가짓수에 +1을 해주어 입지 않을 경우를 추가해주었다. 그 후 모든 경우의 수를 구하기 위해 모든 가짓수를 곱한 후 모든 가짓수에서 하나도 선택되지 않았을 경우 1번을 빼주면 된다. import java.util.*; class Solution { public int solution(String[][] clothes) { int answer = 0; Map map = new ..
- 문제를 잘 읽자!! 오늘도 깨달음..!! - 주석으로 설명을 대신한다. - 최소 거리를 구하는게 핵심~! 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 = ..