일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Java
- KT
- it 뉴스
- 네트워크 관리사 2급 실기
- 싸피셜
- 인앱결제
- 프로그래머스
- 백준
- 싸피
- it 이슈
- SSAFY 7기
- html
- 코딩테스트 연습
- 구글
- 신문스크랩
- 신문 스크랩
- 코테
- 리얼클래스
- 우테코
- 코딩테스트
- java 객체지향 프로그래밍
- IT 트렌드
- 백준위
- 카카오
- SSAFY
- IT 동향
- 네트워크 관리사 2급
- python
- SSAFYcial
- 네트워크 관리사
Archives
- Today
- Total
개발자일걸요..?
10989번 수 정렬하기 3 본문
728x90
반응형
문제링크 : www.acmicpc.net/problem/10989
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
이 문제는 카운팅 정렬을 이용해 푸는 문제입니다.
<카운팅정렬(Counting Sort) 알고리즘>
1. 배열의 처음부터 끝을 돌며 각 요소들이 몇번씩 등장하는지 세서 counting 배열 생성
ex ) A 배열의 i번째 수가 1이라면, counting[1]+=1을 해줌
2. counting 배열을 작은 수부터 돌며 각 수가 몇번 등장했는지를 통해 새로운 배열 생성
ex) counting[i] = 2 라면 i가 2번 들어가게 배열B 생성.
+) 참고 : soobarkbar.tistory.com/101
계수 정렬 (Counting Sort)
소개 요소 값들끼리 서로 비교하지 않고 정렬하는 알고리즘이다. 배열 내 최대 값 + 1 만큼의 길이 배열이 필요하기 때문에 메모리가 낭비될 수 있다. 애니메이션 : URL 과정 1. 먼저 배열 내에 원
soobarkbar.tistory.com
#include <iostream>
int main() {
int T = 0;
scanf("%d", &T);
int number[10001] = { 0 };
int max = 0;
for (int i = 0; i < T; i++) {
int n = 0;
scanf("%d", &n);
number[n]++;
if (max < n) max = n;
}
for (int i = 1; i < max+1; i++) {
if (number[i] > 0) {
for (int j = 0; j < number[i]; j++) {
printf("%d\n", i);
}
}
}
return 0;
}
반응형
'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글
2751번 수 정렬하기 2 (0) | 2021.02.04 |
---|---|
2108번 통계학 (0) | 2021.02.03 |
2750번 수 정렬하기 (0) | 2021.02.02 |
1018번 체스판 다시 칠하기 (0) | 2021.02.02 |
7568번 덩치 (0) | 2021.02.01 |
Comments