-
백준 10419번: 지각구현(Implementation) 2018. 8. 12. 15:39반응형
https://www.acmicpc.net/problem/10419
1. 문제
2. 알고리즘
키워드 - 구현
* 접근법
- t 시간 지각 을 했을 때 실제 수업 가능한 시간을 찾는 문제
- t 가 1 일 때
cand = 1;
sol = cand + cand * cand
sol = 1 + 1 * 1
sol = 2
sol 의 값이 2임으로 t 를 초과 하게 되다 성립되지 않는다.
sol = 0
- t 가 2 일 때
cand = 1
sol = cand + cand * cand
sol = 1 + 1 * 1
sol = 2
sol 의 값이 2임으로 t 와 같다.
cand = 2
sol = 2 + 2 * 2
sol = 6
sol 의 값이 6 임으로 t 를 초과 하게 되어 성립 되지 않는다.
cand 가 1 일 때만 유효 하다.
이런 식으로 지각 하는 t 시간에 따라 계산 하면 정답을 구할 수 있다.
3. 코드
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#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 <math.h>#include <memory.h>using namespace std;#define MAX_SIZE 100#define INF 0x7fffffff#define CENDL "\n"#define ll long long#define c_reverse(s) reverse(s.begin(), s.end())#define c_sort(s) sort(s.begin(), s.end())#define print_vector(v) for(int i=0; i<v.size(); i++) cout << v[i];int main() {cin.tie(0);std::ios::sync_with_stdio(false);int t; cin >> t;while(t--) {int mintime ;cin >> mintime;if (mintime == 1) {cout << 0 << CENDL;} else if(mintime == 2) {cout << 1 << CENDL;} else {int cand = 1;while(true) {int endtime = cand + cand * cand;if (endtime > mintime) {cout << cand - 1 << CENDL;break;} else {cand += 1;}}}}return 0;}cs 반응형'구현(Implementation)' 카테고리의 다른 글
백준 1297번: TV 크기 (0) 2018.08.15 백준 14726번: 신용카드 판별 (0) 2018.08.15 백준 11944번: NN (0) 2018.08.06 백준 11575번: Affine Cipher (0) 2018.08.06 백준 11383번: 똚 (0) 2018.08.06