해당 글은 항해99 클럽 코딩테스트 스터디에서 진행된 27일차(20241123) 비기너 문제에 대한
TIL(Today I Learned) 내용입니다.
문제 출처) https://www.acmicpc.net/problem/11557
이 문제에서 주목해야할 부분은 다음과 같다.
1. 주요조건
2. 입력
입력으로 주어지는 조건들에 대해서 따로 처리가 필요하다.
입력의 첫 줄: 테스트 케이스의 숫자 T
각 케이스 당
같은 테스트 케이스 안에서 소비한 술의 양이 같은 학교는 없다고 가정한다.-> 추가 고려할 필요 X
3. 원하는 답안
풀이방향
=> 문제에서 주어지는 입력에 대한 파악과 처리가 문제풀이의 핵심 관건이다.
(1) 해당 문제에 유리한 구조 및 필요한 사항들 파악
(2) 반복문 실행 상황에 대한 파악
조건 고려사항
(i) T번 테스트케이스를 진행하는데
-> for문 T번 반복
(ii) 1번의 테스트케이스마다 그 안에서의 값(술 소비량)이 최대인 경우에 대해
-> 1번의 테스트케이스에서 최대값을 구하기 위해 N번의 비교 수행
-> 최대인 경우의 학교이름도 변수에 따로 저장한다.
(iii) 그 경우에 해당하는 학교이름을 출력한다.
(또는 각 테스트 케이스마다 최대값을 가지는 학교이름을 기억해뒀다가 한 줄씩 출력한다.)
-> 1번 테스트케이스 끝날 때마다, 최대값을 가지는 학교이름을 출력한다.
(3) 추가 개선 방향
입력에 대해서 Scanner 대신 BufferedReader를 활용하여 입력을 처리할 수 있다.
출력에 대해서 각 테스트케이스가 끝날때마다(반복문이 한 loop 끝날때마다) 출력하는 것 대신
StringBuilder 활용하여 반복문이 완전히 다 끝나고 맨 마지막에 한번만 출력하게 할 수 있다.