4번 나이차이 문제 접근법 질문 드립니다.
301
1 asked
4번 문제를 풀면서 나름대로 먼저 코드를 작성해서 풀고 채점해보니 결과는 제대로 나왔습니다.
다만 제공해주신 소스코드를 살펴보니 저와는 접근법이 아예 달라서 질문드립니다.
아래는 제가 작성한 코드입니다.
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int inputCount, sum, temp = 0;
cin >> inputCount;
int* arr = new int[inputCount];
for (int i = 0; i < inputCount; i++)
{
cin >> temp;
arr[i] = temp;
}
sort(arr, arr + inputCount);
cout << arr[inputCount - 1] - arr[0];
return 0;
}
저는 input 개수를 받은 다음 그 갯수만큼 동적 배열을 할당하여 다음에 입력받는 나이들을 배열에 쌓은 다음 sorting을 하여 min, max 값을 찾아서 계산하는 방법으로 접근했습니다.
강사님께서 제공해주신 코드는 아예 입력단에서 바로바로 min/max 를 체크하여 마지막에 계산하는 방법이었습니다.
코드 처리 시간에 차이가 있을까 싶어서 따로 time 체크도 시도해보았지만 별 차이는 없었습니다.
제가 너무 복잡하게 생각하고 풀이에 접근하는건지, 제가 접근한 방법보다 더 간결하게 접근할 수 있도록 사고하는 연습을 해야할지 고민이 생겨서 질문드립니다.
Answer 1
0
안녕하세요^^
영상의 방식은 시간복잡도가 O(n)입니다. 반복문이 n번 반복하면 됩니다.
위에 코드는 sort를 하기 때문에 시간복잡도가 O(n log n) 입니다. 굳이 sort를 하지 않아도 되는 코드라면 하지 않는게 좋습니다.
개발자라면 실력과 상관없이 항상 코드를 간결하게 짜고, 복잡도를 줄이려고 노력해야 겠지요.
테스트 케이스 질문
0
367
1
병합정렬 시간복잡도 질문
0
458
1
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
0
1339
2
질문드립니다.
0
371
1
질문드립니다!
0
425
1
dev 프로그램 질문
0
270
1
문제가 이해가 안되요
0
371
1
source file not compiled
0
1030
3
59번 질문드립니다.
0
366
1
25번 문제 질문
0
343
1
4. 나이차이 문제 질문입니다.
0
364
1
90번 라이언 킹 심바 1번 테스트 케이스
0
464
1
71번 문제 전역 변수 질문 있습니다
0
353
1
75번, 79번 priority_queue관련
1
351
1
75.최대 수입 스케줄
0
390
2
복면산 정답의 수
0
424
1
테스트 케이스에 대해서
0
438
1
수업 내용 질문입니다!
1
226
1
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
0
813
2
12. 플로이드-와샬(그래프 최단거리) . 27:25초
0
248
1
다른 풀이 방식
0
310
1
크루스칼 vs 프림
0
300
1
숫자 총개수 small 질문있습니다.
0
231
1
C/C++강의라고 하는데요
0
467
1

