# 문제링크
모든 시계수를 만들어 visited 에 체크하고, 주어진 수 까지 앞에 몇개가 있었는지 확인했습니다. 시계수를 만들 때 4중 for 문을 사용했는데 이렇게 하는 게 맞는지 모르겠네... 하면서 했습니다. 더 좋은 방법이 있을지도..
# 제출 코드
#include <iostream>
#include <algorithm>
using namespace std;
bool visited[10000];
int get_num(int a, int b, int c, int d) {
int num1 = a * 1000 + b * 100 + c * 10 + d;
int num2 = b * 1000 + c * 100 + d * 10 + a;
int num3 = c * 1000 + d * 100 + a * 10 + b;
int num4 = d * 1000 + a * 100 + b * 10 + c;
return min({ num1, num2, num3, num4 });
}
void get_all_clock_num() {
// finding all clock num
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
for (int k = 1; k < 10; k++) {
for (int l = 1; l < 10; l++) {
int clock = get_num(i, j, k, l);
if (visited[clock] == false) {
visited[clock] = true;
}
}
}
}
}
}
int main(void)
{
int a, b, c, d;
cin >> a >> b >> c >> d;
int input = get_num(a, b, c, d);
get_all_clock_num();
int sol = 0;
for (int i = 1111; i <= input; i++) {
if (visited[i] == true) sol++;
}
cout << sol;
return 0;
}
반응형
'Computer Science&Engineering > 코딩테스트' 카테고리의 다른 글
[정올 2514] 문자열 찾기 (0) | 2021.03.24 |
---|---|
[정올 1516] 단어 세기 (0) | 2021.03.24 |
[백준 2309] 일곱 난쟁이 (0) | 2021.03.22 |
[백준 11004] K번째 수 (0) | 2021.03.20 |
[백준 10825] 국영수 정렬문제 (0) | 2021.03.20 |