Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준
- gs25
- 우분투
- ChatGPT
- 자연어처리
- Git
- 프로그래머스
- programmers
- leetcode
- 데이콘
- PYTHON
- AI 경진대회
- Docker
- 맥북
- Real or Not? NLP with Disaster Tweets
- Baekjoon
- 금융문자분석경진대회
- 더현대서울 맛집
- 편스토랑
- github
- 파이썬
- dacon
- hackerrank
- SW Expert Academy
- 프로그래머스 파이썬
- 편스토랑 우승상품
- 코로나19
- 캐치카페
- ubuntu
- Kaggle
Archives
- Today
- Total
솜씨좋은장씨
[BaekJoon] 12788번 : 제 2회 IUPC는 잘 개최될 수 있을까? (Python) 본문
Programming/코딩 1일 1문제
[BaekJoon] 12788번 : 제 2회 IUPC는 잘 개최될 수 있을까? (Python)
솜씨좋은장씨 2021. 9. 11. 20:40728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 제 2회 IUPC는 잘 개최될 수 있을까? 입니다.
👨🏻💻 문제 풀이
이 문제는 최대한 적은 수의 회원에게 빌린 펜으로 대회를 운영해야할때
몇 명의 회원에게 펜을 빌려야하는지, 아니면 빌려서는 운영이 불가한지를 확인하는 문제입니다.
먼저 예제 입력에 맞추어 입력을 받습니다.
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))
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 11387번 : 님 무기가 좀 나쁘시네여 (Python) (0) | 2021.09.13 |
---|---|
[BaekJoon] 2139번 : 나는 너가 살아온 날을 알고 있다 (Python) (0) | 2021.09.12 |
[BaekJoon] 2804번 : 크로스워드 만들기 (Python) (0) | 2021.09.10 |
[BaekJoon] 4458번 : 첫 글자를 대문자로 (Python) (2) | 2021.09.09 |
[BaekJoon] 1755번 : 숫자놀이 (Python) (0) | 2021.09.08 |
Comments