일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- SSAFY 7기
- 코딩테스트 연습
- 우테코
- 백준위
- 네트워크 관리사 2급 실기
- 코딩테스트
- html
- 네트워크 관리사
- KT
- SSAFYcial
- 코테
- IT 트렌드
- Java
- it 이슈
- IT 동향
- 카카오
- it 뉴스
- 네트워크 관리사 2급
- 인앱결제
- java 객체지향 프로그래밍
- 신문 스크랩
- 백준
- SSAFY
- 리얼클래스
- python
- 구글
- 신문스크랩
- 싸피셜
- 싸피
- Today
- Total
개발자일걸요..?
2750번 수 정렬하기 본문
문제 링크 : www.acmicpc.net/problem/2750
2750번: 수 정렬하기
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
방법 1. 삽입정렬(insertion sort)
삽입 정렬 : 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는알고리즘.
-> 장점 : 구현이 간단함, 같은 O(n^2)알고리즘에 비교하여 빠름, 안정적/in-place 알고리즘이다.
단점 : 배열이 길어질 수록 효율이 떨어짐
내용 출처 : ko.wikipedia.org/wiki/%EC%82%BD%EC%9E%85_%EC%A0%95%EB%A0%AC
삽입 정렬 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 삽입 정렬(揷入整列, insertion sort)은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬
ko.wikipedia.org
#include <iostream>
#include <vector>
using namespace std;
int main() {
int T = 0;
cin >> T;
vector<int> list;
while (T--) {
int n = 0;
cin >> n;
if (list.size() == 0) list.push_back(n);
else if (list.size() == 1) {
if (list[0] > n) list.insert(list.begin(), n);
else list.push_back(n);
}
else {
for (unsigned int i = 0; i < list.size(); i++) {
if (list[i] >= n) {
list.insert(list.begin() + i, n);
break;
}
else if (list[i]<n && i==list.size()-1) {
list.push_back(n);
break;
}
}
}
}
for (int i = 0; i < list.size(); i++) {
cout << list[i] << "\n";
}
return 0;
}
방법 2. 버블정렬(Bubble sort) = 거품정렬
버블정렬 : 두 인접한 원소를 검사형 정렬하는 방법.(양 방향에서 진행하면 칵테일정렬)
장점: 코드가 단순 단점 : 시간이 오래걸림(O(n^2))
내용 출처 : ko.wikipedia.org/wiki/%EA%B1%B0%ED%92%88_%EC%A0%95%EB%A0%AC
거품 정렬 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 무작위 배열수의 거품 정렬 예 거품 정렬( - 整列, 영어: bubble sort, sinking sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 O ( n 2 ) {\displaystyl
ko.wikipedia.org
#include <iostream>
#include <vector>
using namespace std;
int main() {
int T = 0;
cin >> T;
vector<int> list;
while (T--) {
int n = 0;
cin >> n;
list.push_back(n);
for (int i = 0; i < list.size(); i++) {
for (int j = i; j < list.size(); j++) {
if (list[j] < list[i]) {
int temp = list[j];
list[j] = list[i];
list[i] = temp;
}
}
}
}
for (int i = 0; i < list.size(); i++) {
cout << list[i] << "\n";
}
return 0;
}
'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글
2108번 통계학 (0) | 2021.02.03 |
---|---|
10989번 수 정렬하기 3 (0) | 2021.02.03 |
1018번 체스판 다시 칠하기 (0) | 2021.02.02 |
7568번 덩치 (0) | 2021.02.01 |
1436번 영화 감독 숌 (0) | 2021.02.01 |