5635번 : 생일
문제 )
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
입력 :
첫째 줄에 반에 있는 학생의 수 n이 주어진다. (1 ≤ n ≤ 100)
다음 n개 줄에는 각 학생의 이름과 생일이 "이름 dd mm yyyy"와 같은 형식으로 주어진다. 이름은 그 학생의 이름이며, 최대 15글자로 이루어져 있다. dd mm yyyy는 생일 일, 월, 연도이다. (1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31) 주어지는 생일은 올바른 날짜이며, 연, 월 일은 0으로 시작하지 않는다.
이름이 같거나, 생일이 같은 사람은 없다.
출력 :
첫째 줄에 가장 나이가 적은 사람의 이름, 둘째 줄에 가장 나이가 많은 사람 이름을 출력한다.
풀이)
struct를 이용해서 풀고 싶었는데, 이름의 길이가 가변적이어서
잘 안되어 어쩔 수 없이 일일이 비교하는 식으로 구현했다.
다른 사람들 코드를 보니 sort에 비교하는 함수를 더해 구현을 해놨더라.
sort함수에 대해 공부해야겠다.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string o_name;
int o_day, o_month, o_year;
cin >> o_name >> o_day >> o_month >> o_year;
string y_name = o_name;
int y_day = o_day, y_month = o_month, y_year = o_year;
for (int i = 0; i < n - 1; i++) {
string c_name;
int c_day, c_month, c_year;
cin >> c_name >> c_day >> c_month >> c_year;
// old
if (o_year < c_year) {
o_year = c_year;
o_month = c_month;
o_day = c_day;
o_name = c_name;
}
else if (o_year == c_year) {
if (o_month < c_month) {
o_year = c_year;
o_month = c_month;
o_day = c_day;
o_name = c_name;
}
else if (o_month == c_month) {
if (o_day < c_day) {
o_year = c_year;
o_month = c_month;
o_day = c_day;
o_name = c_name;
}
}
}
// youth
if (y_year > c_year) {
y_year = c_year;
y_month = c_month;
y_day = c_day;
y_name = c_name;
}
else if (y_year == c_year) {
if (y_month > c_month) {
y_year = c_year;
y_month = c_month;
y_day = c_day;
y_name = c_name;
}
else if (y_month == c_month) {
if (y_day > c_day) {
y_year = c_year;
y_month = c_month;
y_day = c_day;
y_name = c_name;
}
}
}
}
cout << o_name << "\n" << y_name;
return 0;
}
|
cs |
출처 : https://www.acmicpc.net/problem/5635
5635번: 생일
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
www.acmicpc.net
'Develop > 백준 (Cpp)' 카테고리의 다른 글
[백준] 1181번 : 단어 정렬 (C++) (0) | 2023.01.30 |
---|---|
[백준] 2581번 : 소수 (C++) (0) | 2023.01.21 |
[백준] 2455번 : 지능형 기차 (C++) (0) | 2023.01.20 |
[백준] 2010번 : 플러그 (C++) (0) | 2023.01.20 |
[백준] 2490번 : 윷놀이 (C++) (0) | 2023.01.20 |