백준 문제풀이/etc
-
[ETC] BOJ 13458 : 시험 감독백준 문제풀이/etc 2019. 10. 1. 23:47
문제 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다. 감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 방에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 방에서 감시할 수 있는 응시자의 수가 C명이다. 각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다. 각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ ..
-
[Greedy] BOJ 2217 번 : 로프백준 문제풀이/etc 2019. 6. 3. 22:30
문제 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런저런 물체를 들어 올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어 올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다. 단, 각각의 로프는 한 개씩만 존재한다. 입력 첫째 줄에 정수 N이 주어진다. 다..
-
[STACK] BOJ 1874 번 문제풀이백준 문제풀이/etc 2019. 5. 13. 13:33
문제 분석 문제에 친절하게 스택을 사용하라고 나와있죠? ㅎㅎ 내용은 이렇습니다. 원하는 수를 사용하기 위해서는 반드시 스택에 push, pop 하는 과정을 거쳐야 합니다. 스택에 값은 아래의 그림처럼 채워집니다. 예를 들어, 가장 처음에 5를 사용해야 한다면 1 ~ 5 의 숫자를 push 한 후에 pop 을해서 사용하는 겁니다. 이게 이해가 되셨다면, 만들고자 하는 배열을 저장해야 하는데 이 배열을 큐에 저장하면 간단합니다. 입력 파트를 보면 먼저 입력된 값부터 스택에서 추출하기 때문입니다. 따라서 예시문제를 순서대로 큐에 push 하게 되면 아래 그림처럼 채워집니다. 자, 이제부터 알고리즘을 설계해봅시다. 1. 큐를 선언하여 입력되는 값을 큐에 넣습니다. 2. 우선 큐의 front 값에 대해서 처리해줍..
-
[STACK] BOJ 9012 번 문제풀이백준 문제풀이/etc 2019. 5. 12. 00:33
문제분석 굉장히 읽기 싫을 정도로 긴 문제지만 결국 소괄호가 한쌍으로 존재하는 가? 를 묻는 문제네요. ㅎㅎ 알고리즘 문제를 풀 때, 접근법이 굉장히 중요한 게 제가 처음에 이 문제를 접근하는 방법은 이렇습니다. '(' , ')' 두 개의 개수를 카운트해서 같으면 VPS 이다 ~ 라고 접근했습니다. 이 방법 역시 그렇게 어렵진 않지만 굉장히 단순 무식한 방법 같았습니다. 그래서 다른 분들의 코드를 보니 세상에 천재들이 많더군요. 개발자 지망생 김 모 씨의 접근법은 이렇습니다. 여는 괄호 '(' 가 나오면 무조건 스택에 PUSH 하고 닫는 괄호 ')' 가 나왔을 때, 배열 안에 여는 괄호 '(' 가 존재하면 스택에서 POP 하고 배열이 비어있다면 FALSE 하는 겁니다. 같은 문제를 이렇게 구현할 수 있다..