본문 바로가기

Java27

[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.
[SWEA][Java][D2] 1204 - [S/W 문제해결 기본] 1일차 - 최빈수 구하기 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13zo1KAAACFAYh&categoryId=AV13zo1KAAACFAYh&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 이 문제는 전형적으로 빈도수를 체크하는 문제이다. 빈도수를 체크하는 문제에서는 1차원 배열을 만들어주고 그 배열의 index에 +1만큼 더해주면서 빈도수를 증가시켜주면 된다. 입력을 최소 1000개 받아야 하기 때문에 시간의 효율성을 위해 bufferedReader를 사용하였다. 점수를 입력받고 해당 점수를 +1씩 증가시.. 2021. 1. 26.
[SWEA][Java][D2] 1954 - 달팽이 숫자 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq&categoryId=AV5PobmqAPoDFAUq&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 해당 문제는 1씩 증가하면서 오른쪽 아래 왼쪽 위 를 반복하는 달팽이 문제이다. 이 문제를 풀때 4가지의 반복문 (오른쪽 아래 왼쪽 위)의 규칙을 찾아서 반복시켜줬고 visitied라는 boolean 배열을 만들어서 이전에 갔던 곳인지 체크해주었다. 여기서 (int)Math.ceil((double)N/2) 만큼 반복해주는.. 2021. 1. 24.