본문 바로가기

Algorithm/백준풀이40

[알고리즘 문제풀이] 백준 9012 괄호 (JAVA코드) https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net /** * 1. 올바른 괄호열 찾기 * * 2. stack을 통한 구현 * * 3. t개의 테스트 데이터를 올바른 괄호열인지 "YES", "NO" 반환 * */ import java.io.*; import java.util.Stack; import java.util.StringTokenizer; public class Test { public static void m.. 2022. 2. 27.
[알고리즘 문제풀이] 백준 10828 스택 (JAVA코드) https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net /** * 1. n개의 명령의 수가 들어오고, * * 2. stack을 구현하여 명령을 처리 * * 3. pop이나 size나 empty, top은 해당하는 숫자를 출력 * */ import java.io.*; import java.util.Stack; import java.util.StringTokenizer; public class Test { public static voi.. 2022. 2. 27.
[알고리즘 문제풀이] 백준 - N과M(2) / JAVA(자바) https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 선행학습: 재귀 /* 1~N중에서 M개를 고른 수열 오름차순 정렬이고 중복 없으므로 visited 개념으로 리스트를 만들어서 사용했으면 넘어갈것 그리고 다음 고른 숫자가 기존에 고른것보다 작으면 넘어갈것 */ import java.util.*; import java.io.*; public class Main { public static int n; public static int m; // 숫자.. 2022. 2. 6.
[알고리즘 문제풀이] 백준 1065 한수 / JAVA https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLi.. 2022. 1. 30.
[알고리즘 문제풀이] 백준 4673 셀프 넘버 /JAVA https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { int [] numbers = new int[10001]; int num = 1; while(num 0){ sum += num2 % 10; num2 /= 10; } if (.. 2022. 1. 30.
[알고리즘 문제풀이] 백준 2798 블랙잭 /JAVA https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokeniz.. 2022. 1. 30.
[알고리즘 문제풀이] 백준 2309 일곱 난쟁이 /JAVA https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net /* 9개 중에 2개를 선택하여 그 두개를 전체합계에서 뺄 때 100일 시 출력 */ import java.util.*; import java.io.*; public class Main { public static int[] arr,choice; public static void main(String[] args) throws IOException{ arr = new int[9]; choice = new .. 2022. 1. 30.
[알고리즘 문제풀이] 백준 6549 히스토그램에서 가장 큰 직사각형 / JAVA https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ www.acmicpc.net /** * 1. 분할정복과 세그먼트 트리 * * 폭은 1로 직사각형이 고정되어있으므로, * * 세그먼트트리로 구간 내 최소 높이의 직사각형 찾기 * * 최소 높이를 찾았을때 구간 폭 을 곱해서 넓이를 구하기 * * 그다음 최소 높이를 제외한 왼쪽 오른쪽 구간으로 나누어 계산 * * (고른 최소높이로는 현재 구간이 제일 크기때문) * * 세그.. 2022. 1. 21.