반응형
안녕하세요. BlockDMask 입니다.
오늘 문제는 .. 음 쉬운 문제입니다.
[C++ reference] 를 설명하기 위해서 찾아서 풀어본 문제입니다.
0. 제목
백준 1427 소트인사이드
BOJ 1427 소트인사이드
1. 문제 설명
숫자 N 이 들어오면 내림차순으로 출력하라.
N의 범위는 1,000,000,000 보다 작거나 같다.
2. 풀이과정
a) 알고리즘 sort를 이용
STL에서 지원해주는 sort 함수를 이용하여 푼 경우.
b) 직접 bubble sort 구현
3. 코드
a) algorithm 헤더파일에서 지원해주는 sort 함수 이용.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //백준 1427 번 소트인사이드 #include<iostream> #include<algorithm> #include<cstring> using namespace std; char arr[10]; int main(void){ cin>>arr; sort(arr, arr+strlen(arr), greater<int>()); for(int i=0; i<strlen(arr); i++){ cout <<arr[i]; } return 0; } | cs |
b) 직접 bubble sort 구현하여 이용.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | //백준 1427 번 소트인사이드 #include<iostream> using namespace std; //reference를 이용한 call-by-reference void Swap(int &num1, int &num2){ int tmp; tmp = num1; //변수 사용하듯 사용하면 됩니다. num1 = num2; num2 = tmp; } //BubbleSort //int *(&arr) : 배열을 reference를 통해서 call by reference 하는 법(= 포인터를 참조자로 참조하는법) void BubbleSort(int *(&arr),int len){ for(int i=0; i<len-1; i++){ for(int j=1; j<len -i; j++){ if(arr[j] > arr[j-1]){ //내림차순 Swap(arr[j], arr[j-1]); } } } } void Solution(string & str){ int len = (int)str.length(); int * arr = new int[len]; //동적할당. //string으로 받은 문자열의 인자를 int type의 배열에 하나씩 넣어줍니다 for(int i=0; i<len; i++) { arr[i] = str[i] -'0'; } BubbleSort(arr, len); for(int i=0; i<len; i++){ cout << arr[i]; } delete []arr; } int main(void){ string str; cin>>str; Solution(str); return 0; } | cs |
4. 인증
a) algorithm 헤더파일에서 지원해주는 sort 함수 이용.
b) 직접 bubble sort 구현하여 이용.
문제 출처 - http://blockdmask.tistory.com/151
감사합니다. 하트 꾹 부탁드려요!
반응형
'<알고리즘 문제풀이&연습> > [C++] 백준, 프로그래머스 등등' 카테고리의 다른 글
[백준 2941] 크로아티아 알파벳 (0) | 2017.10.04 |
---|---|
[백준 5622] 다이얼 (0) | 2017.10.03 |
[백준 13458] 시험 감독 (1) | 2017.09.26 |
[백준 2292] 벌집 (1) | 2017.09.26 |
[백준 1316] 그룹 단어 체커 (4) | 2017.09.21 |
[백준 9012] 괄호 (stack) (0) | 2017.09.20 |
[백준 1016] 제곱ㄴㄴ수 (0) | 2017.09.19 |
[백준 11005] 진법 변환 2 (0) | 2017.09.19 |