-
백준 10989 - 수 정렬하기 3백준 algorithm 2020. 7. 9. 12:49반응형
=> 구현 카테고리에 있지만, 구현 문제가 아닌 것 같습니다.
=> vector에 넣어 sort 함수를 사용할 경우 시간제한과 메모리 제한에 걸리게 됩니다.
=> 해당 문제를 해결하기 위해서는 기존의 문제들과는 다른 시선이 필요합니다.
-
arr [10001]arr [10001] : 주어지는 수는 10000 아래의 수입니다. 그러므로 해당 숫자가 몇 개가 들어가는지 확인하는 배열을 선언합니다.
-
max : 출력할 때, 쓸데 없는 부분까지 탐색하는 문제를 해결하기 위해 max 변수를 선언하여 사용합니다.
-
arr 배열에는 실제 수가 아닌 해당 index 수가 몇 번 나왔는지를 세어줍니다.
-
0부터 max까지의 수중 1개 이상의 갯수를 가진 index를 차례대로 출력해줍니다.
=> 위와 같은 방법으로 논리를 구성하여 코드를 짜면 풀 수 있는 문제입니다.
<code>
#include <iostream> #include <algorithm> #include <string> #include <vector> #include <queue> using namespace std; int arr[10001]={0}; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N; int tmp = 0; cin >> N; int max =0; for(int i=0; i<N; i++) { int tmp; cin >> tmp; arr[tmp]++; //index 숫자의 갯수 추가 if(tmp > max) max= tmp; } for(int i=0; i<=max; i++) { for(int j=0; j<arr[i]; j++) { cout<<i<<'\n'; } } return 0; }
=> 9달전과 3달 전에는 아무리 이해하려 해도 안되던 문제가 결국 해결되었습니다.
반응형'백준 algorithm' 카테고리의 다른 글
백준 1015 - 수열 정렬 (0) 2020.07.15 백준 1924 - 2007년 (0) 2020.07.10 백준 1707 - 이분 그래프 (0) 2020.07.09 백준 1697 -숨바꼭질 (0) 2020.07.04 백준 15781 - 헬멧과 조끼 (0) 2020.07.04 -