Comments (7)
감사합니다!! 덕분에 해결했습니다ㅠㅠ
from fastcampus.
첫 번째 질문자님 안녕하세요!
네 맞습니다. 해당 문제 정답 코드를 보시면, determination(limit)
이라는 함수에서 "limit
이란 가격으로 맞춰 줄 수 있느냐" 라는 질문에 대답을 계산할 때 Math.min(A[i], limit)
을 누적해주죠? 이 때, limit이 무한대여서 모두가 자기가 원하는 만큼 전부 받을 수 있을 때, 실제로 사람들이 무한대까지 돈을 받지 않아도 함수가 True를 돌려주게 됩니다.
문제가 원하는 정답은 배정된 예산들 중 최댓값인 정수를 출력한다.
이기 때문에 실제 받는 돈의 범위에서 구하고자 Max를 취했습니다!
좀 더 직관적인 반례를 드리겠습니다.
1
1
1000000000
이러면 어떻게 실행되는 지 확인해보시겠나요?
from fastcampus.
감사합니다!!
그리고 2343 - 기타레슨과 6236 - 용돈관리 이 두 문제가 비슷해서 같은 내용에 대해 질문이 있습니다.
처음 L과 R을 설정할 때 L을 주어진 배열에서 최댓값으로 설정하는데, 오름차순 정렬을 하고 L에 A[n]을 입력하면 두 문제 다 틀렸다고 결과가 나옵니다. 혹시 왜 이런지 알 수 있을까요?
1300번 - K번째 수 solution.java 코드가 17266번 - 어두운 굴다리 코드로 대신 올라간 것 같습니다 .
from fastcampus.
감사합니다!!
그리고 2343 - 기타레슨과 6236 - 용돈관리 이 두 문제가 비슷해서 같은 내용에 대해 질문이 있습니다.
처음 L과 R을 설정할 때 L을 주어진 배열에서 최댓값으로 설정하는데, 오름차순 정렬을 하고 L에 A[n]을 입력하면 두 문제 다 틀렸다고 결과가 나옵니다. 혹시 왜 이런지 알 수 있을까요?
1300번 - K번째 수 solution.java 코드가 17266번 - 어두운 굴다리 코드로 대신 올라간 것 같습니다 .
@eastheat10 코드를 주시면 봐드릴게요 ㅎㅎ
코드 수정했습니다 감사합니다.
from fastcampus.
2343번 - 기타레슨입니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
// 기타레슨
public class Main {
static int n, m;
static int[] arr;
static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
arr = new int[n + 1];
for (int i = 1; i <= n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr, 1, n + 1);
}
static boolean check(int size) {
int count = 1;
int sum = 0;
for (int i = 1; i <= n; i++) {
if (sum + arr[i] > size) {
count++;
sum = arr[i];
} else {
sum += arr[i];
}
}
return count <= m;
}
static void process() {
int l = arr[n];
int r = 1000000000;
int answer = 0;
while (l <= r) {
int mid = (l + r) / 2;
if (check(mid)) {
answer = mid;
r = mid - 1;
} else {
l = mid + 1;
}
}
System.out.println(answer);
}
public static void main(String[] args) throws IOException {
input();
process();
}
}
6236번 - 용돈관리입니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
// 용돈 관리
public class Main {
static int n, m;
static int[] arr;
static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
arr = new int[n + 1];
for (int i = 1; i <= n; i++)
arr[i] = Integer.parseInt(br.readLine());
}
static boolean check(int l) {
int count = 1;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += arr[i];
if(sum > l) {
count++;
sum = arr[i];
}
}
return count <= m;
}
static void process() {
Arrays.sort(arr, 1, n + 1);
int l = arr[n];
int r = arr[n] * m;
int answer = 0;
while (l <= r) {
int mid = (l + r) / 2;
if (check(mid)) {
answer = mid;
r = mid - 1;
} else {
l = mid + 1;
}
}
System.out.println(answer);
}
public static void main(String[] args) throws IOException {
input();
process();
}
}
두 문제 다 l을 선언할 때 배열 arr의 최댓값을 대입해서 arr정렬 후 arr[n]을 l 에 대입하면 오답이 나오네요...
from fastcampus.
@eastheat10 두 문제 모두 입력을 정렬하면 문제에서 요구한 설명을 전혀 만족시키지 못합니다. 순서가 중요한 문제에서는 정렬을 주의해주세요. L
값을 최댓값으로 잡아도 정답에는 문제가 없지만, 순서가 바뀌어서 문제인 것입니다. 단순히 최댓값을 구하는 건 정렬 안 하고 찾는 게 더 빠르기도 하구요.
from fastcampus.
from fastcampus.
Related Issues (20)
- 호석 사우르스 HOT 1
- 다익스트라 관련 질문 HOT 1
- 호석사우르스 python 해설 코드가 누락되어있습니다
- 골목대장 호석 HOT 1
- FastCampus/류호석배 알고리즘 코딩 테스트/제1회/4번-꿈틀꿈틀 호석 애벌레/python 해설 HOT 2
- 14502 연구소 해설코드 질문이 있어서 깃헙에 질문 같이 적어놓았습니다. HOT 2
- 1182 부분수열의 합 질문입니다. HOT 2
- 안녕하세요 입력 받는 과정에 질문이 있어 드립니다. HOT 1
- 전역변수 사용 HOT 1
- [Part.5 / Ch 02 / 01. 어떻게든 푼다. 완전 탐색 (Brute Force) - 응용편 / 09 : 06] HOT 1
- [Part.2 / Ch 03 / 01. 재귀 함수 이론 / 29 : 12] HOT 1
- 투포인터 연습문제 - 2473 세 용액 파이썬 HOT 1
- 강의외로 류호석강사님과 소통할 채널은 없는걸까요?!! HOT 1
- 코테 연습 중 막힐 때 노하우 질문드립니다 HOT 2
- 골목 대장 호석 HOT 1
- 골목대장호석V2 HOT 1
- 호석이두마리치킨 HOT 1
- 광부호석 HOT 1
- c++ 답안에서 배열들 선언하실때 크기 HOT 2
- 짠돌이 호석 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fastcampus.