jyamethyst21 님의 블로그

백준 30957번 - '빅데이터 vs 정보보호 vs 인공지능' (PYTHON 풀이) 본문

CODING 💻

백준 30957번 - '빅데이터 vs 정보보호 vs 인공지능' (PYTHON 풀이)

jyamethyst21 2026. 2. 17. 00:10

문제:

 

입력으로 학생 수와, 빅데이터(B), 정보보호(S), 인공지능(A)에 대한 학생들의 선호도를 입력받고, 가장 크게 관심을 받는 분야를 영어로 출력하면 되는 문제이다. 만약 세 개의 분야에 대한 관심이 동일하면 SCU를, 두 개의 분야가 동일한 관심을 받고 있다면 B, S, A 순서대로 2개를 붙여서 출력하면 된다.

 

풀이:

N = int(input())
depart = input()
s, b, a = 0, 0, 0

for i in depart:
    if i == 'S':
        s += 1
    elif i == 'B':
        b += 1
    else:
        a += 1

m = max(s, b, a)

if s == b == a:
    print("SCU")
elif s == m and b == m:
    print("BS")
elif s == m and a == m:
    print("SA")
elif b == m and a == m:
    print("BA")
elif s == m:
    print("S")
elif b == m:
    print("B")
else:
    print("A")

학생 수와 선호도를 한 줄로 이은 문자열을 입력받는다.

이후 각 분야에 대한 선호도를 체크하기 위해 변수를 선언한다. 그리고 입력받은 문자열을 하나씩 돌면서 각 분야의 문자열이 속한다면, 해당하는 분야의 변수에 1씩 더해준다.

이후 가장 큰 값을 출력해야 하기때문에 3개의 변수에 max를 사용해서 가장 큰 값을 구한 뒤, m에 넣는다.

그리고 세 개의 변수가 다 동일하면 SCU를, 3개의 변수 중 2개가 가장 큰 값인 m과 같다면 B, S, A 순서대로 출력하도록 모든 경우의 수를 전부 넣어준다. 그리고 가장 큰 값이 하나의 경우에도 대비해서 조건을 넣어주면 문제를 풀 수 있다.