※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 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

+ Recent posts