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 | 31 |
Tags
- JavaScript
- 기계식키보드
- 코드잇
- solved.ac
- 브론즈
- 코딩공부
- 코테
- ADT
- 스톡
- JS
- M1W
- 노트북램교체
- 어도비
- 삼성노트북
- 추상적 자료형
- 긱바
- 삼성노트북하판
- unityC#
- LinkedList
- 오늘도코드잇
- 코드잇TIL
- 시간복잡도
- 백준
- Unity
- 코테준비
- 자료구조
- 노트북SSD교체
- GMK67
- 몬스긱
- 자바스크립트
Archives
- Today
- Total
SKYLIGHT STUDIO
[C++][1773] 폭죽쇼 본문
문제학생들은 3주가 지난 기념으로 매점에서 1월 1일이 지나 싸게 파는 폭죽을 사서 터뜨리고 있다.
폭죽쇼를 하는 동안 N명의 학생들이 폭죽을 터뜨린다. 그리고 이 N명의 학생은 각각 일정한 주기로 폭죽을 터뜨린다. 물론 이 주기는 학생들마다 같을 수도, 다를 수도 있다. 그리고 우리는 초 단위로 관찰을 하고, 폭죽 역시 초 단위로 터진다. 폭죽쇼가 끝날 때까지 얼마나 많은 시간동안 밤하늘에 폭죽이 터지는 것을 볼 수 있는지 궁금해 하는 조교를 도와주자. 입력첫 줄에 폭죽을 터뜨리는 학생의 수 N(1 ≤ N ≤ 100)과 폭죽쇼가 끝나는 시간 C(1 ≤ C ≤ 2,000,000)가 주어진다. 그 다음 N개의 줄에는 학생들이 폭죽을 터뜨리는 주기가 한 줄에 하나씩 주어진다. 주기는 1보다 크거나 같고, C보다 작거나 같은 자연수이다.
출력폭죽쇼가 시작되고 끝날 때까지 밤하늘에 폭죽을 볼 수 있는 총 시간을 출력한다.
|
#include<iostream>
#include<vector>
using namespace std;
int main() {
int students;
int times;
cin >> students >> times;
vector<int> period(students);
vector<bool> num(times + 1, false);
for (int i = 0; i < students; i++) {
cin >> period[i];
}
for (int i = 0; i < period.size(); i++) {
int a = period[i];
for (int j = 0; j <= times; j += a) {
num[j] = true;
}
}
int f_num = 0;
for (int i = 1; i <= times; i++) {
if (num[i]) {
f_num++;
}
}
cout << f_num << endl;
}
for문 응용을 생각도 못했다.
저것만 생각났으면 빠르게 풀었을 듯.
'Computer Programming > Coding Test(C++)' 카테고리의 다른 글
[C++ 리바이브] 범위 기반 for 루프 (0) | 2024.11.02 |
---|---|
[C++ 리바이브] Map (2) | 2024.10.30 |
[C++/1076] 저항 (0) | 2024.10.08 |
[C++][2547] 사탕 선생 고창영 (1) | 2024.10.02 |
[C++ 리바이브] C++ 동적 배열 (0) | 2024.10.02 |