mang_dev
맹꽁거리는 개발자
mang_dev
전체 방문자
오늘
어제
  • 분류 전체보기 (185)
    • Frontend (2)
      • Next.js (1)
    • Backend (3)
      • GraphQL (2)
    • Book (1)
      • 기타 (1)
    • Old (177)
      • 알고리즘 퍼즐 (1)
      • 백준 (131)
      • 프로그래머스 (0)
      • Codility (15)
      • LeetCode (7)
      • Codewars (1)
      • Codeforces (0)
      • Django (6)
      • React (2)
      • Naver Map Api (3)
      • Web UI (4)
      • Introduction to Cloud (2)
hELLO · Designed By 정상우.
mang_dev

맹꽁거리는 개발자

백준 10867번 중복 빼고 정렬하기 // C++
Old/백준

백준 10867번 중복 빼고 정렬하기 // C++

2020. 4. 22. 21:44

문제

 

N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오. 같은 정수는 한 번만 출력한다.

입력

첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다.

출력

첫째 줄에 수를 오름차순으로 정렬한 결과를 출력한다. 이때, 같은 수는 한 번만 출력한다.

 


 

풀이

 

입력되는 수가 최대 10만개이고, 수의 범위가 -1000 ~ 1000까지로 매우 작기 때문에 sort를 사용하는 것보다 어떠한 수를 입력받았는지 확인해서 출력하는 것이 더 빠르다.

 

오름차순으로 정렬한 결과를 출력해야 하기 때문에 음수와 양수를 각각 boolean 배열을 이용하여 입력받았는지를 확인하여 출력하였다.

 


 

코드

더보기
#include <iostream>
#include <cmath>

using namespace std;

int main() {
	int n;

	bool plus[1001] = { false, };
	bool minus[1001] = { false, };

	cin >> n;

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

		if (input < 0) {
			minus[abs(input)] = true;
		}
		else {
			plus[input] = true;
		}
	}

	for (int i = 1000; i > 0; i--) {
		if (minus[i])
			printf("%d ", i * -1);
	}

	for (int i = 0; i <= 1000; i++) {
		if (plus[i])
			printf("%d ", i);
	}

	return 0;
}
저작자표시 (새창열림)

'Old > 백준' 카테고리의 다른 글

백준 2485번 가로수 // C++  (0) 2020.04.22
백준 9663번 N-Queen // C++  (0) 2020.04.22
백준 1406번 에디터 // C++  (0) 2020.04.22
백준 16397번 탈출 // C++  (0) 2020.03.18
백준 5427번 불 // C++  (0) 2020.03.18
    'Old/백준' 카테고리의 다른 글
    • 백준 2485번 가로수 // C++
    • 백준 9663번 N-Queen // C++
    • 백준 1406번 에디터 // C++
    • 백준 16397번 탈출 // C++
    mang_dev
    mang_dev

    티스토리툴바