[백준] 10818번 : 최소, 최대 - (C++)

2023. 4. 17. 19:51·Programming/C++ - 백준
반응형


문제


첫 번째 풀이 - 배열 사용

for문을 통해 array에 입력받은 값을 저장하고, sort() 함수를 이용해 오름차순으로 정렬해 최솟값, 최댓값을 구한다.

개념

  • <algorithm> 라이브러리의 sort( begin, end) 함수
  • 정렬 알고리즘, 시간 복잡도: NlogN
  • 첫 번째 인자: 배열의 포인터
  • 두 번째 인자: 배열의 포인터 + 배열의 크기
  • 세 번째 인자: 오름차순, 내림차순을 결정하며, defalut 값은 오름차순

코드

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int array[1000001];
	int n;
	cin >> n;

	for (int i = 0; i < n; i++) {
		cin >> array[i];
	}

	sort(array, array + n);

	cout << array[0] << " " << array[n - 1];

	return 0;
}

두 번째 풀이 - 배열 사용 X

for문을 통해 값을 입력받고, if문을 통해 입력 값 input이 최솟값 min보다 작다면, min을 input으로 갱신시킨다.
 
입력 값 input이 최댓값 max보다 크다면, max를 input으로 갱신시킨다.

 

따라서, min과 max를 선언할 때, 갱신이 될 수 있도록 범위 밖의 값인 1000001, -1000001로 초기화시켜야 한다.
 
 +  <algorithm> 라이브러리의 min(), max() 함수를 이용하는 것도 가능하다.
 
minV = min(minV, inputV)
maxV = max(maxV, inputV)

코드

#include <iostream>
using namespace std;

int main() {
	int min = 1000001;
	int max = -1000001;
	int n, input;
	cin >> n;

	for (int i = 0; i < n; i++) {
		cin >> input;

		if (input < min) {
			min = input;
		}

		if (input > max) {
			max = input;
		}
	}

	cout << min << " " << max;

	return 0;
}

결과

위에서부터 차례대로 두 번째 풀이(배열 사용 X) → 첫 번째 풀이 (배열 사용)이다.

 

  • 첫 번째 풀이(배열 사용) - 배열 입력(N번) → 배열 정렬(NlogN):  시간복잡도 NlogN
  • 두 번째 풀이(배열 사용 X) - 배열 입력 + 비교(N번): 시간복잡도 N

 

따라서, 시간 복잡도 N < NlogN로, 배열을 사용하지 않은 풀이가 더 빠른 것을 알 수 있다.

 

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

반응형
저작자표시 (새창열림)

'Programming > C++ - 백준' 카테고리의 다른 글

[백준] 2439번 : '별 찍기 -2' - (C++)  (2) 2023.04.17
[백준] 2438번 : '별 찍기 -1' - (C++)  (2) 2023.04.17
[백준] 8393번 : 합 - (C++)  (0) 2023.04.17
[백준] 1924번 : 2007년 - (C++)  (2) 2023.04.17
[백준] 2739번 : 구구단 - (C++)  (0) 2023.04.12
'Programming/C++ - 백준' 카테고리의 다른 글
  • [백준] 2439번 : '별 찍기 -2' - (C++)
  • [백준] 2438번 : '별 찍기 -1' - (C++)
  • [백준] 8393번 : 합 - (C++)
  • [백준] 1924번 : 2007년 - (C++)
지구코드
지구코드
IT를 공부하고 있는 지구의 코딩공간입니다!
  • 지구코드
    지구의 코딩공간
    지구코드
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 개발 기록
      • [프디아] 파이널 프로젝트 N
      • Back-end
        • Spring
        • Django
      • Programming
        • 알고리즘
        • C++ - 백준
      • Cloud
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    edgelocation
    k디지털트레이닝
    슬라이딩윈도우
    dp
    Cloud
    큐
    피보나치 수
    알파코캠퍼스
    EC2
    binary_search
    백준
    신한투자증권
    별 찍기
    프로디지털아카데미
    프디아
    KDT교육
    시간초과
    fill 함수
    awscloudclubs
    pair 클래스
    이진탐색
    다이내믹 프로그래밍
    부트캠프
    C++
    정렬
    부분 문자열 추출
    알파코
    AWS
    구조체 벡터
    시간복잡도
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
지구코드
[백준] 10818번 : 최소, 최대 - (C++)
상단으로

티스토리툴바