본문 바로가기

전체 글

(461)
[JAVA] 백준 14888번: 연산자 끼워넣기 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다. 1+2+3-4x5%6 1%2+3+4-5x6 1+2%3x4-5+6 1%2x3-4+5+6 식의 계산은 연산자 우선..
자동차 경주 - 학습 테스트 (1일차) String 클래스에 대한 학습 테스트 요구사항 1 "1,2"을 ,로 split 했을 때 1과 2로 잘 분리되는지 확인하는 학습 테스트를 구현한다. "1"을 ,로 split 했을 때 1만을 포함하는 배열이 반환되는지에 대한 학습 테스트를 구현한다. 힌트 배열로 반환하는 값의 경우 assertj의 contains()를 활용해 반환 값이 맞는지 검증한다. 배열로 반환하는 값의 경우 assertj의 containsExactly()를 활용해 반환 값이 맞는지 검증한다. @DisplayName("String 1과 2를 split으로 나누고 결과 값이 예상한 결과와 일치하는지 확인") @Test void split1() { String[] result = "1,2".split(","); assertThat(resu..
[JAVA] 백준 1339번: 단어수학 문제풀이 알파벳으로 이루어진 여러 문자열이 주어지고, 이 문자열끼리 덧셈을 해야하는데 가장 큰 값을 도출하도록 알파벳에 숫자를 할당해야하는 문제이다. 예를 들어, ABAB + CCDD를 한다고 가정하면 C = 9, A=8, B=7, D=6 이 들어가야 할 것이다. 값의 범위는 0~9 이고, 큰 값부터 한개씩 가장 큰 자리수에 존재하는 알파벳에 한개 씩 할당해 주면 된다. 가장 큰 자리수에 존재하는 알파벳은 어떻게 알아낼 것인가? ABAB = (1000 * A) + (100 + B) + (10 * A )+ (1 * B) CCDD = (1000 * C) + (100 + C) + (10 * D)+ (1 * D) A = 1010 B = 101 C = 1100 D = 11 위와 같이 연산하면 C > A > B >..
[JAVA] 백준 2529번: 부등호 부등호를 만족하는 최소값과 최대값을 구하라 첫 자리가 0인 경우도 정수에 포함한다. import java.util.ArrayList; import java.util.Scanner; public class baekjoon2529_2 { static String[] infoAry = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; // static String[] infoAry = { "0", "1", "2" }; static boolean[] visit = new boolean[10]; static String[] info; static int n; static ArrayList ary = new ArrayList(); public static void ma..
[JAVA] 백준 2250번: 트리의 높이와 너비 import java.util.Scanner; public class baekjoon2250_4 { static int order = 1; static Node[] nodeInfo; static void inorder(int node, int depth) { if (node == -1) { return; } inorder(nodeInfo[node].left, depth + 1); nodeInfo[node].depth = depth; nodeInfo[node].order = order++; inorder(nodeInfo[node].right, depth + 1); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); ..
[JAVA] 백준 11725번: 트리의 부모 찾기 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class baekjoon11725 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); boolean[] visit = new boolean[n + 1]; ArrayList[] nodeInfo = new ArrayList[n + 1]; int[] parentInfo = new int[n + 1]; for (int i = 1; i
[JAVA] 백준 1261번: 알고스팟 import java.util.ArrayDeque; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class baekjoon1261 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); int[] aryH = { 0, 0, -1, 1 }; int[] aryW = { 1, -1, 0, 0 }; int[][] info = new int[n][m]; boolean[][] visit = new b..
[JAVA] 백준 13549번: 숨바꼭질 3 import java.util.ArrayDeque; import java.util.Scanner; public class baekjoon13549 { public static void main(String[] args) { ArrayDeque dq = new ArrayDeque(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int max = 200000; boolean visit[] = new boolean[max]; int dist[] = new int[max]; dq.addFirst(n); while (!dq.isEmpty()) { int cur = dq.removeFirst(); if (cur =..