-
백준 1524번 : 세준세비 (C 언어)c c++ 언어 공부 2023. 11. 22. 13:39
https://www.acmicpc.net/problem/1524
1524번: 세준세비
첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 100보다 작거나 같다. 각 테스트 케이스는 다음과 같이 이루어져 있다. 첫째 줄에 N과 M이 들어오고, 둘째 줄에는 세준이의 병사들의 힘이 들어
www.acmicpc.net
Code:
123456789101112131415161718192021#include <stdio.h>#define max(a,b) a>b?a:b;int main() {int t;scanf("%d", &t);while(t--){int n, m, x, s = 0, b = 0;scanf("%d%d", &n, &m);while (n--) {scanf("%d", &x), s = max(x, s);}while (m--) {scanf("%d", &x),b = max(x, b);}puts(s < b ? "B" : "S");}return 0;}cs 문제 설명
세준이와 세비가 온라인 게임을 즐겨한다. 이 게임에서는 병사를 키워 전쟁을 하게 됩니다. 각 플레이어는 병사를 키우고, 이들을 이용하여 여러 번의 전투를 진행합니다. 전투마다 살아있는 병사 중 가장 힘이 약한 병사가 죽게 됩니다. 그러다가 한 명을 제외한 모든 병사가 죽으면 전쟁이 끝나고 승자를 결정해야 합니다.
입력
- 첫째 줄에는 테스트 케이스의 개수 T가 주어집니다. (T ≤ 100)
- 각 테스트 케이스는 세 줄로 이루어집니다.
- 첫째 줄에는 세준이와 세비가 키운 병사의 수 N과 M이 주어집니다. (1 ≤ N, M ≤ 1,000,000)
- 둘째 줄에는 세준이의 병사들의 힘이 주어집니다.
- 셋째 줄에는 세비의 병사들의 힘이 주어집니다.
- 힘은 자연수이며, 300,000,000보다 작거나 같습니다.
출력
- 각 테스트 케이스에 대해 한 줄에 승자를 출력합니다.
- 세준이가 이기면 'S', 세비가 이기면 'B', 둘 다 아닐 경우 'C'를 출력합니다.
코드 설명
- #define max(a,b) a>b?a:b;: 두 값을 비교하여 더 큰 값을 반환하는 매크로 함수를 정의합니다.
- int main() { ... }: 프로그램의 진입점입니다.
- int t; scanf("%d", &t);: 테스트 케이스의 개수를 입력받습니다.
- while(t--) { ... }: 주어진 테스트 케이스 수만큼 반복합니다.
- int n, m, x, s = 0, b = 0;: 세준이와 세비의 병사 수 및 힘을 입력받을 변수와, 가장 강한 병사의 힘을 저장할 변수를 초기화합니다.
- scanf("%d%d", &n, &m);: 세준이와 세비의 병사 수를 입력받습니다.
- 병사의 힘을 입력받는 부분에서 각각의 힘을 비교하여 가장 강한 병사의 힘을 갱신합니다.
- puts(s < b ? "B" : "S");: 세준이와 세비 중 가장 강한 병사를 비교하여 전쟁의 승자를 출력합니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 2985번 : 세 수 (C 언어) (0) 2023.11.27 백준 1434번 : 책 정리 (C 언어) (2) 2023.11.22 백준 1812번 : 사탕 (C 언어) (0) 2023.11.10 백준 17356번 : 욱 제 (C 언어) (0) 2023.11.09 백준 2547번 : 사탕 선생 고창영 (C 언어) (0) 2023.11.08