본문 바로가기

Algorithm(알고리즘)131

[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] [백준 2644][BFS] 촌수 계산 www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net 문제 우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌으로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌, 나와 아버지 형제들과는 3촌이 된다. .. 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.