Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 맛집
- 에라토스테네스의 체
- Algorithm
- SWEA
- 완전탐색
- 소수
- 삼성 SDS 대학생 알고리즘 특강
- 브루트포스
- 스택
- koitp
- PS
- hackerrank
- dfs
- 구현
- 그리디
- dynamic programming
- DP
- 동적 계획법
- C++
- 다이나믹 프로그래밍
- 백준
- sw expert academy
- 잠실
- 백트래킹
- 알고리즘
- BFS
- BOJ
- 해커랭크
- 삼성 기출
- 시뮬레이션
Archives
- Today
- Total
펭로그
[C++] 삼성 SDS KOITP 쉬어가는페이지 본문
문제링크 : https://koitp.org/problem/SDS_TEST_PAGE
[삼성 SDS 대학생 알고리즘 특강 사전 테스트 A Type 3번 문제]
처음으로 읽은 페이지를 시작으로 하여 건너뛸 페이지수 + 1 만큼 더해가면서 푸는 방법도 좋지만 이렇게 할 경우 (전체페이지수 - 초기페이지) / (스킵페이지 + 1) 만큼 실행을 해야한다.
어짜피 input으로 받은 값들은 모두 다 if 문으로 조건을 판별해야하기 때문에 이 방법이 훨씬 더 낫다.
(쉬어가는 페이지 - 초기페이지)가 (스킵페이지 + 1)로 나누어 떨어지는가를 체크하면 더 쉽고 빠르게 풀 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | // KOITP_SDS_Atype_03 #include <bits/stdc++.h> using namespace std; int main() { // freopen("../input.txt", "r", stdin); int T; cin >> T; for (int t = 0; t < T; t++) { int num; int initPage; int skipPage; int numRest; int input; int result = 0; cin >> num >> initPage >> skipPage >> numRest; for (int i = 0; i < numRest; i++) { cin >> input; if (input >= initPage) { if (input == initPage) result++; else if ((input - initPage) % (skipPage + 1) == 0) result++; } } cout << "#" << t + 1 << " " << result << "\n"; } return 0; } | cs |
'Study > PS(Algorithm)' 카테고리의 다른 글
[C++] 삼성 SDS KOITP 마지막생존자 (0) | 2018.07.19 |
---|---|
[C++] 삼성 SDS KOITP 순환공간 (0) | 2018.07.19 |
[C++] 백준 BOJ 2839 설탕배달 (0) | 2018.07.13 |
[C++] HackerRank 해커랭크 Roads and Libraries (0) | 2018.04.16 |
[C++] HackerRank 해커랭크 Counter game (0) | 2018.04.10 |
Comments