[백준] 17388번 와글와글 숭고한

반응형
반응형

문제

숭고한 알고리즘 캠프가 다가오고 있고 방학이 되어서까지도 각 대학들의 협업은 계속되고 있다. 그럼에도 불구하고 운영진들과 강사진들이 각자의 일정 때문에 바빠 계획에 차질이 조금씩 생기고 있다. 숭고한 알고리즘 캠프의 대표인 창호는 효율적인 일처리를 위해 엄정한 평가를 내리기로 하였다.

창호는 숭고한 알고리즘 캠프의 구성원인 숭실대학교(Soongsil University), 고려대학교(Korea University), 한양대학교(Hanyang University)의 참여도를 수치화하였다. 창호가 보기에 세 대학교의 참여도의 합이 100 이상이면 일처리가 잘 되고 있기에 안심할 수 있지만, 100 미만이면 창호는 참여도가 가장 낮은 대학의 동아리에게 무언의 압박을 넣을 예정이다. 숭고한 알고리즘 캠프의 성공을 빌며 창호의 고민을 해결해주자.

입력

첫 번째 줄에 숭실대학교의 참여도, 고려대학교의 참여도, 한양대학교의 참여도를 의미하는 세 자연수 S, K, H가 공백으로 구분되어 주어진다. (0 ≤ S, K, H ≤ 100)

세 대학의 참여도는 모두 다르다.

출력

첫 번째 줄에 일처리가 잘 되고 있어 무언의 압박이 필요가 없으면 (따옴표를 제외하고) “OK”를 출력한다.

그 외에는 첫 번째 줄에 무언의 압박이 필요한 동아리가 속한 대학의 영문 이름의 첫 단어를 출력한다. 영문 이름 표기는 지문에 나온 것을 따른다.

 

이 문제는 굉장히 쉬웠다.

브론즈 문제인것도 있지만...

 

나는 배열 2개로 이 문제를 해결하였다.

 

#include <bits/stdc++.h>
using namespace std;
 string school[] = {"Soongsil","Korea","Hanyang"}; 
int main(void) {
 int a,b,c;
 cin >> a >> b >> c;

 int nums[3] = {a,b,c};
 if (a+b+c >= 100) {
   cout << "OK";
   return 0;
 } 

 int mn = 999;

 int index = -1;
 for(int i = 0;i<3;i++) {
   if (mn > nums[i]) {
     mn = nums[i];
     index = i;
   }
 }

 cout << school[index];
} 

min 함수를 사용할수도 있었지만 그것을 사용하게되면 index가 어떤값인지 확인하기 힘들었다.

그래서 if문을 사용해서 적용시켰다.

 

그렇게 구한 값을 가지고 school이라는 배열에 그 값을 넣으면 위 3개의 학교중 하나가 나온다.

#include <iostream>
using namespace std;

int main() {
	int s, k, h; cin >> s >> k >> h;
	if (s + k + h >= 100)
		cout << "OK" << endl;
	else {
		int m = min(min(s, k), h);
		if (m == s)
			cout << "Soongsil" << endl;
		if (m == k)
			cout << "Korea" << endl;
		if (m == h)
			cout << "Hanyang" << endl;
	}

	return 0;
}
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 14891번 톱니바퀴  (0) 2020.06.02
[백준] 14912번 숫자 빈도수  (0) 2020.05.31
[백준] 9093번 단어 뒤집기  (0) 2020.05.28
[백준] 17090번 미로 탈출하기  (0) 2020.05.26
[백준] 1476번 날짜 계산  (0) 2020.05.25

댓글

Designed by JB FACTORY