본문 바로가기

전체 글108

백준 11052번 : 카드 구매하기 (Java) 문제 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 구현 방법 i개가 가질 수 있는 모든 경우를 구하여 최댓값을 구해주었습니다. 입력되는 값을 해당 위치에 저장한 뒤 그 값이 가질 수 있는 최댓값을 구하여 다음 최댓값을 구할 때 사용하게 됩니다. 예제를 예를 들면 4 1 5 6 7 1개 : 1 -> 1 1개 + 1개 : 2 2개 : 5 -> 5 1개 + 2개 : 6 3개 : 6 -> 6 < 4개일.. 2022. 2. 17.
백준 3665번 : 최종 순위 (Java) 문제 https://www.acmicpc.net/problem/3665 3665번: 최종 순위 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 본부에 www.acmicpc.net 구현 방법 문제를 이해하는 데 시간이 넘나 오래 걸렸습니다.... 🤯 "예를 들어, 작년에 팀 13이 팀 6 보다 순위가 높았는데, 올해 팀 6이 팀 13보다 순위가 높다면, (6, 13)을 발표할 것이다" 이 문장 때문에 너~~무 헷갈렸는데요. 아직도 정확하게 이해를 했는지.. 모르겠지만 일단 제가 이해한바로는 상대적인 순위가 더 높아질 수도, 더 낮아질 수도 있다 입니다. 따라서 .. 2022. 2. 16.
백준 14676번 : 영우는 사기꾼? (Java) 문제 https://www.acmicpc.net/problem/14676 14676번: 영우는 사기꾼? 프로그램의 입력은 표준 입력으로 받는다. 입력의 첫 줄에는 건물 종류의 개수 N, 건물 사이 관계의 개수 M, 영우의 게임 정보의 개수 K가 주어진다.(1 ≤ N, M, K ≤ 100,000) 다음 줄부터 M줄에 걸쳐 www.acmicpc.net 구현 방법 건물들이 이전에 반드시 건설된 상태여야 지을 수 있으므로 위상 정렬 알고리즘을 사용했습니다. 문제 풀이 과정을 간략하게 적자면 1. 건물 생성 시 진입 차수가 0이 아니거나 건물 파괴 시 건물 개수가 없으면 치트키를 사용하여 건물을 건설 or 치트키를 사용하여 건설한 건물을 파괴 하는 것이므로 치트키 사용을 알 수 있음 2. 건물 생성 시, 건물 개.. 2022. 2. 15.
백준 1368번 : 물대기 (Java) 문제 https://www.acmicpc.net/problem/1368 1368번: 물대기 첫 줄에는 논의 수 N(1 ≤ N ≤ 300)이 주어진다. 다음 N개의 줄에는 i번째 논에 우물을 팔 때 드는 비용 Wi(1 ≤ Wi ≤ 100,000)가 순서대로 들어온다. 다음 N개의 줄에 대해서는 각 줄에 N개의 수가 들어 www.acmicpc.net 구현 방법 최소의 비용으로 모든 논에 물을 대야하기 때문에 Kruskal 알고리즘을 사용했습니다. 물을 대는 방법은 직접 논에 우물 파는 방법, 이미 물을 대고 있는 다른 논으로부터 물을 끌어오는 방법 2개가 있어 적절한 방법을 골라 사용해야 합니다. 처음에는 너무 복잡하게 생각했는데 사실 우물이라는 가상의 노드를 추가하면 해결되는 문제였습니다. 즉, 우물이라는.. 2022. 2. 14.