https://www.acmicpc.net/problem/5972 5972번: 택배 배송농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는www.acmicpc.net데이크스트라 문제이다.bfs랑 비슷하게 풀면되는데 어떤 노드에 도착할때 방문하는데 사용한 비용이 더 낮다면 그노드부터는 한번더 탐색하는 방식이다.1번 노드에서 출발한다 1번노드 방문하는데는 0의 비용이든다.1번에서 2,4번으로 이동한다. 2노드로 가는데에는 1의 비용이 들고 4의 노드로 가는데에는 4의 비용이든다.2번,4번노드에서 이동한다. 2에서 1로 가려는데 1로 가는 최소 비용이 0이라 2보다 큼으로 못간..
https://www.acmicpc.net/problem/8980 8980번: 택배입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이www.acmicpc.net그리디 문제이다.상자들을 보내는 마을로 heapq를 사용해서 정렬해 받는다.어떤 마을에 도착했을 때 받을 수 있는 택배 상자를 차에서 내린다.이제 보낼 상자를 택배에 올려야한다 일단 보내는 마을의 상자는 받아서 택배에 싣는다.만약 상자를 넣었는데 최대 용량 초과라면 가장 늦게 주는 마을의 택배량을 초과량만큼 줄인다.줄였는데도 초과용량이 남았다면 그다음 늦게 주는마을 줄이는 방식이다i..
https://www.acmicpc.net/problem/13164 13164번: 행복 유치원행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로www.acmicpc.net그리디 문제이다.주어진 값 들의 사이 값들을 전부 분석해 저장한뒤 N-K만큼 빼내면 조를 K개 정했을때 필요한 금액이 된다.이유는1 | 3 | 5 | 6 | 10이렇게 있다고 했을 때 3개 조를 만들라면 2 : 2 : 1 로 조를 나눠야하고 2명씩 묵는 조가 2개가 나와야한다.그리고 이 2개의 조안에서 차이를 보면 되기 때문이다.또한 2개의 조를 만들라고 했을 땐 3 : 2 로 가는 것보다 4 ..
heapq 모듈은 힙(heap) 자료구조를 구현하는데 사용되는 파이썬 내장 모듈입니다. 힙은 부모 노드가 자식 노드보다 항상 작거나 큰 값을 가지는 이진 트리 구조를 가진 자료구조로서, 최소 힙(min heap) 또는 최대 힙(max heap)으로 사용될 수 있습니다. heapq 모듈은 주로 리스트를 사용하여 힙을 구현하며, 이 리스트는 항상 힙의 특성을 만족하도록 유지됩니다.아래는 heapq 모듈에서 제공하는 주요 함수들입니다: heapify(iterable): 주어진 iterable을 힙으로 변환합니다. 시간 복잡도는 O(n)입니다.import heapqdata = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]heapq.heapify(data)print(data) # [1, 1, 2,..
객체지향 프로그래밍은 현실 세계의 모델을 반영하여 프로그램을 설계하고 구현하는 패러다임입니다. 여기서 객체는 현실 세계의 개념이나 사물을 프로그램 안에서 표현한 것으로, 이러한 객체들은 데이터와 해당 데이터를 처리하는 메서드(함수)로 이루어져 있습니다.이를 코드로 구현한 예제를 통해 객체지향의 핵심 개념을 자세히 설명하겠습니다.// 객체를 표현하는 클래스 정의class Accounting { // 객체의 속성(멤버 변수) public double valueOfSupply; public double vatRate; public double expenseRate; // 객체의 메서드 public double getIncome() { return valueOfSup..
자바에서 반복문은 주어진 조건에 따라 일련의 코드를 반복해서 실행하는 데 사용됩니다. 주요한 반복문에는 for, while, do-while이 있습니다. 각각의 반복문에 대한 설명과 예제를 제공합니다.1. for문:for (int i = 1; i for문은 초기화식, 조건식, 증감식을 사용하여 반복을 제어합니다.위의 예제에서는 1부터 5까지의 숫자를 출력하는 반복문입니다.2. while문:int count = 1;while (count while문은 주어진 조건이 참인 동안 반복을 수행합니다.위의 예제에서는 1부터 5까지의 숫자를 출력하는 반복문입니다.3. do-while문:int num = 1;do { System.out.println("반복 횟수: " + num); num++;} while..