본문 바로가기

BOJ3

[Java] [백준 1038][Brute-force] 감소하는 수 문제 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. 입력 첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 N번째 감소하는 수를 출력한다. 문제 풀이 이 문제는 처음에 풀때 DP를 이용해서 풀다가 너무 복잡해져서 규칙을 적용하기가 힘들었다. 그런데 브루트 포스로 풀게 되면 순서와 상관없이 계속 넣을 수 있고 애초에 9876543210이 구할 수 있는 .. 2021. 1. 28.
[Java] [백준 2294][DP] 동전 2 문제 n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어질 수도 있다. 출력 첫째 줄에 사용한 동전의 최소 개수를 출력한다. 불가능한 경우에는 -1을 출력한다. 문제 풀이 (DP) 이 문제는 전형적인 DP문제이다. 모든 경우를 확인해야 되는데 확인할때 dp에 업데이트 .. 2021. 1. 28.
Java 백준 단계별 풀기 (기초 문법 정리) 문자열 11654 - 아스키 코드 방법 1 ) charAt(0) import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int ch = in.next().charAt(0); System.out.print(ch); } } 방법 2) System.in + throws Exception public class Main { public static void main(String[] args) throws Exception { int a = System.in.read(); System.out.print(a); } } 이게 byte 값으로 문자 한 개만 읽기.. 2020. 12. 26.