알고리즘 문제 풀이/구현
백준 - 와글와글 숭고한
가나무마
2021. 12. 28. 22:24
본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.
문의는 댓글 바람.
문제 출처 : https://www.acmicpc.net/problem/17388
[문제 설명]

[접근 방법]
모든 학교를 돌아야하므로 시간복잡도는 O(N) 그 이하로 나올 수는 없다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
enum School {Soongsil, Korea, Hanyang }
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
// 꼴찌 학교 이름
int loserSchoolNumber = 0;
// 꼴찌 학교의 점수
int pointOfLoserSchool = Integer.MAX_VALUE;
// 학교들의 점수 총합
int totalPoint = 0;
int index = 0;
while (st.hasMoreTokens()) {
int currentSchoolPoint = Integer.parseInt(st.nextToken());
totalPoint += currentSchoolPoint;
if (totalPoint >= 100) {
break;
}
if (currentSchoolPoint < pointOfLoserSchool) {
loserSchoolNumber = index;
pointOfLoserSchool = currentSchoolPoint;
}
index++;
}
System.out.println(totalPoint < 100 ? School.values()[loserSchoolNumber] : "OK");
}
}