강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

hellofrontdev님의 프로필 이미지
hellofrontdev

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

35. Special Sort (버블정렬 응용: 구글 인터뷰)

35번 질문

해결된 질문

작성

·

197

1

아래 방법은 별로일까요?

버블 정렬은 O(N^2)이고 아래 방법은 비록 공간 복잡도는 효율적이지 못했지만 O(N)으로 처리하여 더 효율적인거 아닌가? 라는 생각을 하였습니다. 

#include<stdio.h>
#include<vector>
using namespace std;

int main() {
	int n, i, p = 0;
	scanf("%d", &n);
	
	vector<int> a(n);
	vector<int> b(n);
	
	for(i = 0; i < n; i++) scanf("%d", &a[i]);
	
	for(i = 0; i < n; i++) {
		if(a[i] < 0) b[p++] = a[i];
	}
	
	for(i = 0; i < n; i++) {
		if(a[i] > 0) b[p++] = a[i];
	}
	
	for(i = 0; i < n; i++) printf("%d ", b[i]);
	return 0;
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

네, 좋은 코드입니다. 원래는 hellofrontdev 님 처럼 하는게 좋죠. 

hellofrontdev님의 프로필 이미지
hellofrontdev

작성한 질문수

질문하기