πŸ¦₯ μ½”ν…Œ/BAEKJOON

[BAEKJOON C++] 5635_생일

μ§•μ§•μ•ŒνŒŒμΉ΄ 2023. 6. 28. 14:50
728x90
λ°˜μ‘ν˜•
μ–΄λ–€ λ°˜μ— μžˆλŠ” ν•™μƒλ“€μ˜ μƒμΌμ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, 
κ°€μž₯ λ‚˜μ΄κ°€ μ μ€ μ‚¬λžŒκ³Ό κ°€μž₯ λ§Žμ€ μ‚¬λžŒμ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨

μž…λ ₯
첫째 μ€„에 λ°˜μ— μžˆλŠ” ν•™μƒμ˜ μˆ˜ n이 μ£Όμ–΄μ§„λ‹€. (1 ≤ n ≤ 100)
λ‹€μŒ n개 μ€„μ—λŠ” κ° ν•™μƒμ˜ μ΄λ¦„κ³Ό μƒμΌμ΄ "이름 dd mm yyyy"와 κ°™μ€ ν˜•μ‹
이름은 κ·Έ ν•™μƒμ˜ μ΄λ¦„이며, μ΅œλŒ€ 15κΈ€μžλ‘œ μ΄λ£¨μ–΄μ Έ μžˆλ‹€. 
dd mm yyyyλŠ” μƒμΌ μΌ, μ›”, μ—°λ„이닀.(1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31)
μ£Όμ–΄μ§€λŠ” μƒμΌμ€ μ˜¬λ°”λ₯Έ λ‚ μ§œμ΄λ©°, μ—°, μ›” μΌμ€ 0으둜 μ‹œμž‘ν•˜μ§€ μ•ŠλŠ”λ‹€.
이름이 κ°™κ±°λ‚˜, μƒμΌμ΄ κ°™μ€ μ‚¬λžŒμ€ μ—†λ‹€.

좜λ ₯
첫째 μ€„에 κ°€μž₯ λ‚˜μ΄κ°€ μ μ€ μ‚¬λžŒμ˜ μ΄λ¦„, 
λ‘˜μ§Έ μ€„에 κ°€μž₯ λ‚˜μ΄κ°€ λ§Žμ€ μ‚¬λžŒ μ΄λ¦„을 μΆœλ ₯
// [5635] 생일 

/*
μ–΄λ–€ λ°˜μ— μžˆλŠ” ν•™μƒλ“€μ˜ 생일이 μ£Όμ–΄μ‘Œμ„ λ•Œ, 
κ°€μž₯ λ‚˜μ΄κ°€ 적은 μ‚¬λžŒκ³Ό κ°€μž₯ λ§Žμ€ μ‚¬λžŒμ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨

μž…λ ₯
첫째 쀄에 λ°˜μ— μžˆλŠ” ν•™μƒμ˜ 수 n이 주어진닀. (1 ≤ n ≤ 100)
λ‹€μŒ n개 μ€„μ—λŠ” 각 ν•™μƒμ˜ 이름과 생일이 "이름 dd mm yyyy"와 같은 ν˜•μ‹
이름은 κ·Έ ν•™μƒμ˜ 이름이며, μ΅œλŒ€ 15κΈ€μžλ‘œ 이루어져 μžˆλ‹€. 
dd mm yyyyλŠ” 생일 일, μ›”, 연도이닀.(1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31)
μ£Όμ–΄μ§€λŠ” 생일은 μ˜¬λ°”λ₯Έ λ‚ μ§œμ΄λ©°, μ—°, μ›” 일은 0으둜 μ‹œμž‘ν•˜μ§€ μ•ŠλŠ”λ‹€.
이름이 κ°™κ±°λ‚˜, 생일이 같은 μ‚¬λžŒμ€ μ—†λ‹€.

좜λ ₯
첫째 쀄에 κ°€μž₯ λ‚˜μ΄κ°€ 적은 μ‚¬λžŒμ˜ 이름, 
λ‘˜μ§Έ 쀄에 κ°€μž₯ λ‚˜μ΄κ°€ λ§Žμ€ μ‚¬λžŒ 이름을 좜λ ₯
*/

#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;

int main(int argc, char **argv)
{
	// μ‹€ν–‰ 속도λ₯Ό 높이기 μœ„ν•΄
	// 동기화 : 기본적으둜 C++와 C의 ν‘œμ€€ μŠ€νŠΈλ¦Όμ€ 동기화 (λ™μΌν•œ 버퍼 곡유)
	// 비동기화 : C++ ν‘œμ€€ 슀트림이 λ…λ¦½μ μœΌλ‘œ IO 버퍼링을 ν•˜κ²Œ λ˜μ–΄ λ§Žμ€ μ–‘μ˜ μž…μΆœλ ₯이 μžˆμ„ 경우 μ„±λŠ₯이 많이 쒋아짐
	ios_base::sync_with_stdio(false);
	
	// κΈ°μ‘΄ : μž…λ ₯μš”μ²­μ΄ λ“€μ–΄μ˜€λ©΄ κ·Έ 전에 좜λ ₯ μž‘μ—…μ΄ μžˆμ—ˆμ„ 경우(좜λ ₯ 버퍼에 λ‚΄μš©μ΄ μžˆλŠ” 경우) 버퍼λ₯Ό λΉ„μ›Œ(flush) 좜λ ₯
	// cin.tie(NULL); : μž…λ ₯κ³Ό 좜λ ₯ 연결을 λŠμ–΄μ€€λ‹€ (μž…μΆœλ ₯ μˆœμ„œλ₯Ό 보μž₯받을 수 μ—†λ‹€)
	cin.tie(NULL);
	cout.tie(NULL);

	int n;
	cin >> n;
	// λ…„, μ›”, 일, 이름
	// Pair<[Type], [Type] > 
	// : 2개의 각각 μ§€μ •ν•œ νƒ€μž…μ˜ 값을 μ €μž₯
	// : μ €μž₯ν•œ 값은.first 와.second둜 각각 μ ‘κ·Ό
	vector<pair<pair<int, int>, pair<int, string>>> student(n);
	
	for (int i = 0; i < n; i++) {
		// "이름 dd mm yyyy"
		cin >> student[i].second.second >> student[i].second.first >> student[i].first.second >> student[i].first.first;
	}
	// λ…„, μ›”, 일 순 μ •λ ¬
	// 이λ₯Έ λ‚ μ§œλŠ” μ•ž, λŠ¦μ€ λ‚ μ§œλŠ” λ’€
	sort(student.begin(), student.end());

	cout << student[n - 1].second.second << "\n" << student[0].second.second;
	return 0;
}

 

// μ‹€ν–‰ μ†λ„λ₯Ό λ†’이기 μœ„ν•΄
// λ™κΈ°ν™” : κΈ°λ³Έμ μœΌλ‘œ C++와 C의 ν‘œμ€€ μŠ€νŠΈλ¦Όμ€ λ™κΈ°ν™” (λ™μΌν•œ λ²„퍼 κ³΅μœ )
// λΉ„동기화 : C++ ν‘œμ€€ μŠ€νŠΈλ¦Όμ΄ λ…λ¦½μ μœΌλ‘œ IO λ²„퍼링을 ν•˜κ²Œ λ˜μ–΄ λ§Žμ€ μ–‘μ˜ μž…μΆœλ ₯이 μžˆμ„ κ²½μš° μ„±λŠ₯이 λ§Žμ΄ μ’‹μ•„짐
ios_base::sync_with_stdio(false);
// κΈ°μ‘΄ : μž…λ ₯μš”μ²­μ΄ λ“€μ–΄μ˜€λ©΄ κ·Έ μ „에 μΆœλ ₯ μž‘업이 μžˆμ—ˆμ„ κ²½μš°(좜λ ₯ λ²„퍼에 λ‚΄μš©μ΄ μžˆλŠ” κ²½μš°) λ²„퍼λ₯Ό λΉ„μ›Œ(flush) μΆœλ ₯
// cin.tie(NULL); : μž…λ ₯κ³Ό μΆœλ ₯ μ—°κ²°μ„ λŠμ–΄μ€€λ‹€ (μž…μΆœλ ₯ μˆœμ„œλ₯Ό λ³΄μž₯받을 μˆ˜ μ—†λ‹€)
cin.tie(NULL);
cout.tie(NULL);
// 2개의 각각 μ§€μ •ν•œ νƒ€μž…μ˜ 값을 μ €μž₯
// μ €μž₯ν•œ 값은.first 와.second둜 각각 μ ‘κ·Ό
Pair<[Type], [Type] > 

 

728x90
λ°˜μ‘ν˜•