JAVA 86

두 배열 합치기

오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램 을 작성하세요. public static int[] solution(int[] arr1, int[] arr2){ int[] result = new int[arr1.length + arr2.length]; // 합치기 for (int i = 0; i < arr1.length; i++) { result[i] = arr1[i]; } for (int i = 0; i < arr2.length; i++) { result[i + arr1.length] = arr2[i]; } // 정렬 java.util.Arrays.sort(result); return result; } public static void main(String[] ..

JAVA/알고리즘 2021.05.24

Java List null, size > 0 동시 검사 (Java List isEmpty)

Java에서 List null과 size > 0를 동시에 검사하는 함수를 공유한다. SpringFramework.util 또는 apache.commons 에서 제공하는 CollectionUtils 클래스의 isEmpty() 함수를 사용하여 검사를 한다. 이 중 SpringFramework.util 라이브러리를 사용하는것을 추천한다. // 두개 중 선택 가능 import org.springframework.util.CollectionUtils; import org.apache.commons.collections.CollectionUtils; public static void main(String[] args) { List nullList = null; boolean nullListEmpty = Collec..

JAVA 2021.05.18

뒤집은 소수 구하기 JAVA

/* 뒤집은 소수 N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다. ▣ 입력설명 첫 줄에 자연수의 개수 N(3 기존 값은 10배가 되고, 나머지를 더한다. tmp = tmp / 10; // 입력값 오른쪽 숫자 제거 } return result; } public static boolean isPrime(final int N){ if(N == 1){ // 1은 소수가 아님 return false; } for (int i = 2; i < N; i++) { // 자기자신보다 작은 수..

JAVA/알고리즘 2021.05.13

피보나치수열 JAVA

피보나키 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열 public static int[] solutionWithArray(int N){ int[] ans = new int[N]; ans[0] = 1; ans[1] = 1; for (int i = 2; i < N; i++) { ans[i] = ans[i-1] + ans[i-2]; } return ans; } public static void solutionNoArray(int N){ int a=1; int b=1; System.out.print(a + " " + b); int c=0; for (int i = 2 ; i < N; i++) { c = a+b; System.out.print(" " + c); a=b; b=c..

JAVA/알고리즘 2021.05.13

백준 10757 풀이

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.math.BigInteger; /** * 문제 * 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. * * 입력 * 첫째 줄에 A와 B가 주어진다. (0 < A,B < 10^10000) * 9223372036854775807 9223372036854775808 * * 출력 * 첫째 줄에 A+B를 출력한다. * 18446744073709551615 */ public class P10757 { private static String[] getInput() throws IOException { Bu..

JAVA/알고리즘 2021.05.06

백준 2839 풀이

/* 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬..

JAVA/알고리즘 2021.05.06

백준 2775 문제풀이

/* 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 ..

JAVA/알고리즘 2021.05.04

백준 10250 풀이

/* ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..

JAVA/알고리즘 2021.05.04