백준 9047번: 6174 (C++)
2023. 2. 17. 17:05ㆍ알고리즘/구현
https://www.acmicpc.net/problem/9047
9047번: 6174
입력은 표준입력(standard input)을 통해 받아들인다. 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스마다 한 줄에 네 자리 수(1000~9999)가 하나씩 주어진다. 단,
www.acmicpc.net
풀이
단순한 구현 문제
6174가 나올 때 까지 while문을 돌려주면서 cnt를 하나씩 더해주었다.
4자리 숫자가 나오기 때문에 arr[4] 배열을 선언해서 한 자리씩 숫자를 넣어주고 정렬한 다음
최솟값에는 0번부터 3번까지 차례대로 넣어주었고
최댓값에는 3번부터 0번까지 차례대로 넣어주었다.
10을 곱해가며 자릿수를 늘려주면 최대 4자리의 최솟값과 최댓값이 된다.
전체 코드
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int T;
int n;
cin >> T;
while (T--) {
cin >> n;
int cnt = 0;
while (n != 6174) {
int maxN = 0, minN = 0;
int arr[4];
for (int i = 0; i < 4; i++) {
arr[i] = n % 10;
n /= 10;
}
sort(arr, arr + 4);
for (int i = 0; i < 4; i++) {
minN *= 10;
minN += arr[i];
maxN *= 10;
maxN += arr[3 - i];
}
n = maxN - minN;
cnt++;
}
cout << cnt << '\n';
}
}
'알고리즘 > 구현' 카테고리의 다른 글
백준 5212번: 지구 온난화 (C++) (0) | 2023.02.22 |
---|---|
백준 2920번: 음계 (C++) (0) | 2023.01.26 |
백준 17128번: 소가 정보섬에 올라온 이유 (C++) (0) | 2023.01.21 |
백준 1292번: 쉽게 푸는 문제 (C++) (0) | 2023.01.18 |
백준 1652번: 누울 자리를 찾아라 (C++) (0) | 2023.01.18 |