-
백준 1526번: 가장 큰 금민수시뮬레이션(Simulation) 2018. 7. 19. 16:36반응형
https://www.acmicpc.net/problem/1526
1. 문제
4와 7 로 이루어진 숫자중 가장 큰 숫자를 찾는 문제
2. 알고리즘
키워드 - 시뮬레이션
접근법 - 입력되는 N 숫자에서 4와 7로 이루어진 최소 값과, 최대 값을 구하여 검색 범위를 좁혀서 처리 한다.
숫자의 크기가 1000000 임으로 INT(정수)형 변수로 처리 가능하다.
만약 숫자의 크기가 아닌 길이가 1000000 이라면 정수로 처리가 불가능 하다.
현재 적용된 코드는 범위를 정하지 않고 완전 탐색으로 구현 하였으니 참고 하세요.
3. 코드
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <deque>#include <map>#include <set>#include <stack>#include <cstring>using namespace std;#define MAX_SIZE 100#define INF 0x7fffffff#define CENDL "\n"#define ll long longbool check(int n) {bool isOk = true;while(n) {int cand = n % 10;n /= 10;// 일의 자리 숫자가 4, 7 이면 금민수 아니면 falseif (cand == 4 || cand == 7) {continue;}else {isOk = false;break;}}return isOk;}int main() {cin.tie(0);std::ios::sync_with_stdio(false);int n; cin >> n;int sol = 4;for (int i=4; i<=n; i++) {if (check(i)) {sol = i;}}cout << sol << CENDL;return 0;}cs 반응형'시뮬레이션(Simulation)' 카테고리의 다른 글
백준 1547번: 공 (0) 2020.02.06