관리 메뉴

솜씨좋은장씨

[BaekJoon] 12788번 : 제 2회 IUPC는 잘 개최될 수 있을까? (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 12788번 : 제 2회 IUPC는 잘 개최될 수 있을까? (Python)

솜씨좋은장씨 2021. 9. 11. 20:40
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 제 2회 IUPC는 잘 개최될 수 있을까? 입니다.

 

12788번: 제 2회 IUPC는 잘 개최될 수 있을까?

2016년 5월 28일 제 2회 인하대학교 프로그래밍 경시대회(IUPC)가 개최된다. 이 대회는 다른 프로그래밍 경시대회와 다르게  손코딩으로 문제를 풀어야한다. CTP회장인 정은이는 모든 대회 참가자들

www.acmicpc.net

👨🏻‍💻 문제 풀이

이 문제는 최대한 적은 수의 회원에게 빌린 펜으로 대회를 운영해야할때 

몇 명의 회원에게 펜을 빌려야하는지, 아니면 빌려서는 운영이 불가한지를 확인하는 문제입니다.

먼저 예제 입력에 맞추어 입력을 받습니다.

member_num = int(input())
team_num, team_member = map(int, input().split())
members_pen = list(map(int, input().split()))
need_pen = team_num * team_member

맨 첫번째 줄은 회원 수

그 다음 줄은 이번 대회에서 구성할 총 팀의 개수와 각 팀별 팀원 수 -> 이 값을 활용하여 총 필요한 펜의 개수를 구함

그 다음 줄은 회원들이 가지고 있는 펜의 수 입니다.

if need_pen > sum(members_pen):
    answer = "STRESS"

만약 필요한 펜의 개수가 회원들이 가지고 있는 전체 펜의 개수보다 클 경우에는 STRESS를 정답으로 합니다.

else:
    members_pen.sort(reverse=True)
        
    borrow_pen_num = 0
        
    for num, pen_num in enumerate(members_pen):
        borrow_pen_num += pen_num
        if borrow_pen_num >= need_pen:
            answer = num + 1
            break

회원들이 가지고 있는 전체 펜의 개수가 필요한 개수보다 많을 경우는

가장 많은 펜의 개수를 가지고 있는 회원 순으로 정렬한다음 차례로 빌리면서

빌린 펜의 개수가 필요한 펜의 개수보다 커질때 반복문을 종료하고 현재 빌린 사람의 순번을 정답으로 합니다.

 

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

def borrow_pen(need_pen, members_pen):
    if need_pen > sum(members_pen):
        answer = "STRESS"
    else:
        members_pen.sort(reverse=True)
        
        borrow_pen_num = 0
        
        for num, pen_num in enumerate(members_pen):
            borrow_pen_num += pen_num
            if borrow_pen_num >= need_pen:
                answer = num + 1
                break
                
    return answer
            
if __name__ == "__main__":
    member_num = int(input())
    team_num, team_member = map(int, input().split())
    members_pen = list(map(int, input().split()))
    need_pen = team_num * team_member
    
    print(borrow_pen(need_pen, members_pen))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments