문제 링크 : https://www.acmicpc.net/problem/14724
목차
1. 설명
2. 내 코드
3. 문제 풀이 해석 내용
4. 실행 결과
설명
백준 브론즈 2 문제 입니다.
문제명 : 관리자는 누구?
내 코드
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
std::cout.tie(NULL);
int n;
cin >> n;
string clubs[9] =
{
"PROBRAIN", "GROW", "ARGOS", "ADMIN", "ANT",
"MOTION", "SPG", "COMON", "ALMIGHTY"
};
int max_score = -1;
int max_index = -1;
for (int i = 0; i < 9; ++i)
{
int club_max = -1;
for (int j = 0; j < n; ++j)
{
int score;
cin >> score;
club_max = max(club_max, score);
}
if (club_max > max_score)
{
max_score = club_max;
max_index = i;
}
}
cout << clubs[max_index] << '\n';
}
문제 풀이 해석 내용
각 클럽의 점수 개수 입력
int n;
cin >> n;
int n; cin >> n;: 각 클럽마다 몇 개의 점수가 주어지는지를 나타내는 정수 n을 입력받습니다.
클럽 이름 배열
string clubs[9] =
{
"PROBRAIN", "GROW", "ARGOS", "ADMIN", "ANT",
"MOTION", "SPG", "COMON", "ALMIGHTY"
};
9개의 클럽 이름이 저장된 문자열 배열 clubs를 선언하고 초기화합니다.
최대 점수 및 해당 클럽 인덱스 초기화
int max_score = -1;
int max_index = -1;
max_score: 전체 클럽 중 가장 높은 최고 점수를 저장할 변수입니다.
초기값은 어떤 점수보다도 작은 -1로 설정합니다.
max_index: max_score를 가진 클럽의 clubs 배열 내 인덱스를 저장할 변수입니다.
초기값은 -1로 설정합니다.
클럽별 최고 점수 탐색 및 전체 최고 점수 업데이트
for (int i = 0; i < 9; ++i) // 9개의 클럽에 대해 반복
{
int club_max = -1; // 현재 클럽의 최고 점수 초기화
for (int j = 0; j < n; ++j) // 각 클럽의 n개 점수에 대해 반복
{
int score;
cin >> score; // 점수 입력받기
club_max = max(club_max, score); // 현재 클럽의 최고 점수 업데이트
}
if (club_max > max_score) // 현재 클럽의 최고 점수가 전체 최고 점수보다 높으면
{
max_score = club_max; // 전체 최고 점수 업데이트
max_index = i; // 전체 최고 점수를 가진 클럽의 인덱스 저장
}
}
바깥쪽 for 루프는 9개의 각 클럽에 대해 반복합니다.
안쪽 for 루프는 현재 클럽의 n개의 점수를 입력받습니다.
club_max = max(club_max, score);: std::max 함수를 사용하여 현재 입력받은 score와 현재까지의 club_max 중 더 큰 값을 club_max에 저장합니다. 이 과정을 통해 현재 클럽의 최고 점수를 찾습니다.
안쪽 루프가 끝나면 현재 클럽의 최고 점수(club_max)를 전체 최고 점수(max_score)와 비교합니다.
만약 club_max가 max_score보다 크면, max_score를 club_max로 업데이트하고, max_index에 현재 클럽의 인덱스 i를 저장합니다.
결과 출력
cout << clubs[max_index] << '\n';
모든 클럽을 처리한 후, max_index에 저장된 인덱스를 사용하여 clubs 배열에서 가장 높은 최고 점수를 가진 클럽의 이름을 출력합니다. '\n'을 사용하여 줄바꿈을 합니다.
실행 결과
'c++' 카테고리의 다른 글
백준 c++ 18258 문제 풀이 (0) | 2025.05.08 |
---|---|
백준 c++ 9012 문제 풀이 (0) | 2025.05.07 |
백준 c++ 20053 문제 풀이 (0) | 2025.04.30 |
백준 c++ 5524 문제 풀이 (0) | 2025.04.29 |
백준 c++ 1009 문제 풀이 (0) | 2025.04.22 |