Comments (7)
아하,, 반례 감사합니다!!
반례 기반으로 다시 이해해보겠습니다
from fastcampus.
전체 코드를 봐야 더 자세히 알 수 있을 것 같네요. + 2202번이 아니라 2003번 문제 같은데 맞나요?
from fastcampus.
죄송합니다 2003번입니다
public class BOJ2003 {
static int atoi(String str) {
return Integer.parseInt(str);
}
static int N, M;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = atoi(st.nextToken());
M = atoi(st.nextToken());
int arr[] = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = atoi(st.nextToken());
}
int s = 0, e = 0, sum = 0, cnt = 0;
///////////////////////////////////////////////맞은부분
while (true) {
System.out.println(s + " " + e);
if(sum >= M){
sum -= arr[s];
s++;
}
else if(e == N){
break;
}
else{
sum += arr[e++];
}
if(sum == M){
cnt++;
}
//왜 e == N일떄 멈춰도되나?
//e가 잇는상태에서 s가 계속 가면서 답이 될 수 있지않을까?
//절대 아니다. 왜냐하면 이미 Sum보다 작으면서 e == N이면
//s가 늘어난다하면 당연히 뺄텐데 여기서 이미 sum보다 작은데 뺴면 더 작아지니까 답이 안됨 어차피
}
////////////////////////////////////////틀린 것
/*
int s = 0, e = 0, sum = 0, cnt = 0;
while (true) {
// System.out.println(s + " " + e);
if(e == N) break;
if(sum >= M){
sum -= arr[s];
s++;
}
else {
sum += arr[e++];
}
if(sum == M){
cnt++;
}
}
*/
System.out.println(cnt);
}
}
```
`
입니다.
둘의 차이는 틀린 부분을 봤을 때, e == N일 때 break해줍니다.
그렇다면 당연히 뒷 부분들은 e != N일 때, 즉 N보다 작을 때 입니다.
맞은 부분은 if문에서 걸러주는데 이게 무슨 차이가 있는 것 같은데 명확히 얘기를 못하겠습니다.
그래서 아직 덜 이해가 됐다라고 생각이 들었습니다.
+
이렇게 범위 나누는 것이 문제마다 당연하게 다를 텐데 혹시 선생님은 어떤 식으로 생각하시고
푸시는지 궁금합니다
from fastcampus.
...? 위에도 맞는데 System.out.println(s + " " + e);
을 지우고 내셔야죠.
from fastcampus.
- 맞은 것
- 틀린 것
입니다,,,
위에서 했던 질문이 아직까지 이해가 되질 않습니다.
from fastcampus.
아하 그렇군요! 다시 볼게요!
from fastcampus.
4 4
1 1 1 2
틀린 코드에 대한 반례입니다.
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.