본문 바로가기

백준674

[백준] 단계별로 풀어보기(단계:16,그리디 알고리즘,JAVA)11399번, ATM 문제 링크 11399번: ATM www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 그리드 알고리즘(탐욕 알고리즘)이란 여러 경우를 선택해야할 때 그 상황에 최적의 경우으로 생각하는 것을 반복하여 최종적인 답을 가져오는 방법입니다. 이 문제에서는 ATM대기시간을 최소로 하려면 대기시간이 낮은 순으로 ATM을 사용하여야 합니다. 그래서 ATM대기시간을 기준으로 Array.Sort를 사용하여 오름차순으로 정렬하였습니다. ATM기다리는 시간을 저장할 배열 time.. 2022. 2. 1.
[백준] 단계별로 풀어보기(단계:16,그리디 알고리즘,JAVA)1931번, 회의실 배정 문제 링크 1931번: 회의실 배정 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 그리드 알고리즘(탐욕 알고리즘)이란 여러 경우를 선택해야할 때 그 상황에 최적의 경우으로 생각하는 것을 반복하여 최종적인 답을 가져오는 방법입니다. 이 문제에서는 최대의 회의실 사용횟수를 구하려면 현재 시간에서 최소로 끝날 수 있는 시간을 찾아서 그 회의를 반복하는 것입니다. 문제에서는 회의의 시작시간과 끝나는 시간이 섞여있기 때문에 끝나는 시간 순으로 오름차순 정렬을 하.. 2022. 1. 31.
[백준] 단계별로 풀어보기(단계:16,그리디 알고리즘,JAVA)11047번, 동전 0 문제 링크 11047번: 동전 0 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 그리드 알고리즘(탐욕 알고리즘)이란 여러 경우를 선택해야할 때 그 상황에 최적의 경우으로 생각하는 것을 반복하여 최종적인 답을 가져오는 방법입니다. 이 문제에서는 동전의 최소의 개수를 얻으려면 가치가 큰 동전을 최우선 사용하여 동전의 최대 가치를 0을 만들어야 합니다. 문제에서 입력에서 동전의 가치가 오름차순으로 정렬되어 있기 때문에 정렬하지 않아도 됩니다. 가치가 높은 동.. 2022. 1. 31.
[백준] 단계별로 풀어보기(단계:15,동적계획법1,JAVA)12865번, 평범한 배낭 문제 링크 12865번: 평범한 배낭 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 동적계획법이란 위 문제와 같이 동일한 연산을 계속 반복하여 비효율적으로 코드가 실행되어 그것을 향상시키기 위하여반복되는 연산의 결과를 따로 저장하여 적재적소에 코드가 더 효율적으로 만드는 방법입니다. 배낭에 물건을 넣을 때에 최대의 가치를 넣을 때를 표로 만들었습니다. 표에서 열의 index값은 무게의 최대 무게일 때를 표현합니다. 예를 들어 index=4이면 최대무게가.. 2022. 1. 31.
[백준] 단계별로 풀어보기(단계:15,동적계획법1,JAVA)1912번, 연속합 문제 링크 1912번: 연속합 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 동적계획법이란 위 문제와 같이 동일한 연산을 계속 반복하여 비효율적으로 코드가 실행되어 그것을 향상시키기 위하여반복되는 연산의 결과를 따로 저장하여 적재적소에 코드가 더 효율적으로 만드는 방법입니다. 연속된 합에서 마지막 수는 자기자신이 최대수로 표현할 수 있습니다. 예제 입력 1에 대하여 연속합에 표를 만들면 10 -4 3 1 5 6 -35 12 21 -1 21 11 15 1.. 2022. 1. 29.
[백준] 단계별로 풀어보기(단계:15,동적계획법1,JAVA)9251번, LCS 문제 링크 9251번: LCS www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 동적계획법이란 위 문제와 같이 동일한 연산을 계속 반복하여 비효율적으로 코드가 실행되어 그것을 향상시키기 위하여반복되는 연산의 결과를 따로 저장하여 적재적소에 코드가 더 효율적으로 만드는 방법입니다. LCS에 대한 정의는 문제에서 알려주고 있지만 알고리즘을 구성할 때 감이 잡히지 않아서 위키백과에서 LCS에 관련 글을 참고하여 풀어보았습니다. 최장 공통 부분 수열 - 위키백과,.. 2022. 1. 28.