지나가던 개발자

[Python] 백준 23348번(스트릿 코딩 파이터) 문제 풀이 본문

PS/Python

[Python] 백준 23348번(스트릿 코딩 파이터) 문제 풀이

KwonYongHyeon 2021. 12. 11. 13:55

 

 제1회 한국항공대학교 프로그래밍 경진대회(KAUPC)에 나온 1번 문제, 스트릿 코딩 파이터이다.

 

 동아리원들이 한손 코딩, 노룩 코딩, 폰코딩이라는 무시무시한 기술들을 선보이며 진행되는 대회의 1등의 점수를 구하는 문제이다.

 

 무시무시한 문제와는 다르게 정답 코드는 굉장히 간단하다.

 

level = list(map(int, input().split()))
n = int(input())
grades = []
for i in range(n):
    grade = 0
    for j in range(3):
        a = list(map(int, input().split()))
        for k in range(3):
            grade += a[k] * level[k]
    grades.append(grade)
print(max(grades))

 

 우선 세 가지 기술의 난이도를 level이라는 리스트에 저장한 뒤, 참가한 동아리들의 수를 n으로 입력받는다. 동아리들의 점수를 저장해 놓을 리스트 grades도 잊지 않도록 한다.

 

 그리고 n회동안 n번째 동아리가 얻은 점수 grade를 구하는데, 동아리원은 무조건 3명이므로 3번동안 1명의 동아리원이 선보인 기술들을 입력받고, 그 동아리원이 선보인 기술을 동아리가 얻은 점수 grade에 저장한다. 이는 아까 난이도와 동아리원이 선보인 횟수를 곱하여 저장하는 것이다. 그 뒤에 그 점수 grade를 전체 동아리들의 점수를 저장해 놓은 리스트 grades에 넣고, 마지막으로 grades에서 가장 높은 점수를 출력하는 코드이다.

 

 

 문제 읽고 "ㄷ...?" 했는데, 생각보다 되게 쉬운 문제였다.

 

Comments