6-L 질문합니다
235
投稿した質問数 24
안녕하세요, 선생님 강의 잘 듣고 있습니다!
6-L 을 풀던 도중, 제 풀이 방법이 틀렸다고 나와 반례가 궁금합니다.
시간 복잡도는 O(n* n/2) 이라 통과 한다고 생각합니다.
A[i]에 10을 곱한것은 혹시 모를 부동 소수점 오류가 날지 몰라 처리 해두었습니다.
https://www.acmicpc.net/source/70768639
回答 2
0
안녕하세요 동훈님 ㅎㅎ
for (int i =0; i < n; i++){
double temp = 1;
int cnt = 1;
for (int j = i; j < n; j++){
temp *= A[j];코드를 보시면.. O(N^2)인데 이문제의 최대범위N = 1만. 즉, 동훈님이 작성하신 1억짜리 시간복잡도를 가지는 코드입니다. 물론 5000만이지만요(상수 포함하면)
이 정도면 시간초과가 날수도 있습니다.
제가 1000만이면? 1억이면? 시간초과가 날 수도 있다. 이거 좀 효율적으로 할 수 있지 않을까? 하고 들어가라고 말씀드렸는데요.
즉,
아 좀 많은 것 아닌가? 생각을 먼저하는게 1st.
그리고 나서 더이상 N^2말고 방법이 없다? 그러면 한번 들어가는게 2nd입니다.
자 그럼 코드리뷰 해볼게용.
동훈님 코드 리뷰
소수점 첫째자리까지 주어지며, 0.0보다 크거나 같고, 9.9보다 작거나 같다.
이 특성을 이용해서 * 10을 곱해서 하신 것 같습니다. 이외에도 pow를 사용해서 정수형으로 해결하려고 하신 것 같습니다.
ans = max(ans, double(temp / pow(10,cnt++)) );근데 이런 걸 또 보면... 갑자기 형변환을 해서 double형인 ans와 비교하는데. 차라리 long long으로 아예 크게 잡고 long long과 비교하다가 마지막에 double로 변환하는게 좋을 것 같습니다.
그리고 cout은 소수점까지 출력하려면 이런 코드같은게 필요합니다. 이부분이 없었습니다.
참고로 자세한 부분은 다음의 교안을 참고해주세요.
cout의 실수 타입 출력
cout.precision(자릿수 + 1);
즉, 전체적으로는 어떤 로직인지는 알겠으나 불필요한 부분, 다듬어야 할 부분이 있었습니다.
제가 한번 다듬어 봤습니다. ㅎㅎ
이런 로직을 원하셨던게 아닌가요?
(이 코드는 통과합니다.)
#include<bits/stdc++.h>
using namespace std;
int n;
double num;
double A[10010];
int main(){
cin >> n;
for (int i =0; i < n; i++){
cin >> A[i];
}
double ans = 0;
for (int i = 0; i < n; i++){
double temp = 1;
for (int j = i; j < n; j++){
temp *= A[j];
ans = max(temp, ans);
}
}
printf("%.3lf", ans + 0.00001);
}
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
진행 방법 질문드립니다!
0
30
2
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
55
2
2주차 개념#12 트리 순회
0
25
2
백준사이트가 종료된다고 합니다.
0
284
2
백준 서비스 종료
9
882
1
sk 하이닉스 코테 대비
0
367
2
3-G 최댓값 질문
0
50
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
83
2
3-I 코드 질문드립니다.
0
62
2
3-N 질문 있습니다.
0
66
2
학습방법
0
102
2
4-H 질문 있습니다 (코드 리뷰)
0
66
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
169
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
69
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
64
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
51
2
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
0
68
2
함수별 시간복잡도
0
73
2
3-h 질문입니다.
0
49
1
안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.
0
53
2
1-I 문제 질문 드립니다.
0
76
2
2-P 질문입니다.
0
56
1
mac에서 시작하기 관련
0
91
2
5-Q 질문
0
64
2

