※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 12791번 문제인 Starman이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/12791
12791번: Starman
첫 번째 줄에 질의의 수 정수 Q(Q ≤ 100)가 주어진다. 이후 Q개의 줄에 질의 S, E(1 ≤ S ≤ E ≤ 2016)가 정수로 주어진다.
www.acmicpc.net
문제에 주어진 앨범목록들을 {년도,앨범명}꼴의 pair로 묶어 순서대로 정리해둔 뒤, 매 입력마다 해당 범위 내에 포함되는 앨범들을 순서대로 벡터에 담아 문제를 해결하자.
주어지는 년도의 구간이 폐구간임에 유의하자. 또한, 년도가 같은 두 앨범의 출력 순서는 알파벳순이 아닌 출시순(즉, 지문에 주어진 순서 그대로)이어야 함에 유의하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
#include <vector>
using namespace std;
pair<int, string> pairs[25] = {
{1967, "DavidBowie"},
{1969, "SpaceOddity"},
{1970, "TheManWhoSoldTheWorld"},
{1971, "HunkyDory"},
{1972, "TheRiseAndFallOfZiggyStardustAndTheSpidersFromMars"},
{1973, "AladdinSane"},
{1973, "PinUps"},
{1974, "DiamondDogs"},
{1975, "YoungAmericans"},
{1976, "StationToStation"},
{1977, "Low"},
{1977, "Heroes"},
{1979, "Lodger"},
{1980, "ScaryMonstersAndSuperCreeps"},
{1983, "LetsDance"},
{1984, "Tonight"},
{1987, "NeverLetMeDown"},
{1993, "BlackTieWhiteNoise"},
{1995, "1.Outside"},
{1997, "Earthling"},
{1999, "Hours"},
{2002, "Heathen"},
{2003, "Reality"},
{2013, "TheNextDay"},
{2016, "BlackStar"}
};
int T;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> T;
while (T--) {
int L, R; cin >> L >> R;
vector<pair<int, string>> ans;
for (auto& p : pairs) {
if (L <= p.first && p.first <= R) ans.emplace_back(p);
}
cout << ans.size() << '\n';
for (auto& p : ans) cout << p.first << ' ' << p.second << '\n';
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 5353 // C++] Open Intervals (0) | 2022.12.23 |
---|---|
[BOJ 21771 // C++] 가희야 거기서 자는 거 아니야 (0) | 2022.12.23 |
[BOJ 5345 // C++] PLU Count (0) | 2022.12.22 |
[BOJ 6889 // C++] Smile with Similes (0) | 2022.12.22 |
[BOJ 5343 // C++] Parity Bit (0) | 2022.12.22 |