-
[수학] 수학은 체육과목 입니다 3(22351)(C++)BOJ C++ 알고리즘 공부 2022. 6. 17. 23:08
https://www.acmicpc.net/problem/22351
1. 문제 개요
차례로 1씩 증가하는 숫자들의 나열이 주어졌을 때, 시작 수와 끝 수를 찾는 문제.
예를 들어, 99100101의 경우 정답은 99, 100이 된다.
2. 입출력
3. 문제 풀이
처음엔 문자열에서 서브스트링을 뽑아내며 증가하는 추세가 있다면 통과하도록 했다.
하지만 좋은 생각이 아니었다...
생각을 바꾸어 이중 루프에서 모든 경우의 수를 차례로 탐색해가며 정답과 일치한다면 출력하도록 했더니 코드가 훨씬 간결해졌다.
4. 전체 코드
// // main.cpp // backjoon // // Created by 배주현 on 2022/02/09. // #include <stdio.h> #include <algorithm> #include <iostream> #include <cmath> #include <vector> #include <queue> #include <string> using namespace std; int main(void) { string str; cin >> str; for(int i=1;i<1000;i++) { string temp = to_string(i); string A = to_string(i); if(temp==str) { cout << str << " " << str; exit(0); } for(int j=i+1;j<1000;j++) { temp += to_string(j); if(temp==str) { cout << A << " " << j; exit(0); } } } }
'BOJ C++ 알고리즘 공부' 카테고리의 다른 글
[그래프] 항체 인식(22352)(C++) (0) 2022.06.18 [수학] 헤이카카오(22353)(C++) (0) 2022.06.18 [그리디] 과제(13904)(C++) (0) 2022.06.16 [그리디] 카드 합체 놀이(15903)(C++) (0) 2022.06.15 [그리디] 강의실 배정(11000)(C++) (0) 2022.06.15