문제 출처 : 코드트리_바이러스 검사
티어 : 브론즈2
유형 : 그리디
출제 : 2015년 하반기 통합 1번
주의사항 : 팀장이 한명씩 있어야 함에 주의
2015년 하반기는 삼성 그룹에서 SW직군에게 첫 코딩테스트를 실시한 시기이며, 초기 실험군답게 이례적으로 브론즈 난이도의 문제가 나온 해이기도 합니다.
플래티넘도 심심치않게 보이는 요즘과 비교해보면 불공평하다고 생각할 수도 있지만, 당시에는 파이썬의 사용이 불가능해서 지원자들이 느꼈던 난이도가 좀 다르지 않았을까 싶어요! 그래도 브론즈는 좀 부럽네요.
생각의 흐름
검사 팀장은 한 가게당 한 명씩 반드시 존재해야 한다 했으므로, 각 가게의 손님 수에서 검사 팀장이 검사할 수 있는 수를 빼준 후, 0 이하가 되면 더 이상 검사가 필요 없으니 넘기고, 양수라면 검사팀원의 수로 나누어 몇 명이 필요한지 계산해주자고 생각했습니다. 거기에서 나머지가 있으면 한 명을 더 붙여주자고 생각하고 풀이를 시작했습니다.
스킬
그런 건 없습니다.
풀이
def getInput():
# 입력받는 함수
n = int(input())
customer = list(map(int, input().split()))
leader, follower = map(int, input().split())
return n, customer, leader, follower
# ===== 실제 실행하는 부분 =====
answer = 0
n, customer, leader, follower = getInput()
for custom in customer:
custom -= leader # 검사팀장은 반드시 존재해야 하므로
answer += 1 # 인원 한명 추가
if custom>0: # 검사팀장이 있음에도 불구하고 피검사자가 남은 경우
if custom%follower == 0: # 피검사자의 수가 검사팀원의 가능한 검사 수로 딱 나뉘는 경우
answer += custom//follower
else: # 딱 나누어지지 않는 경우는, 남은 인원들을 한 명이 추가로 검사해야함.
answer += custom//follower + 1
print(answer)
'삼성전자 코딩테스트 기출문제 > Python' 카테고리의 다른 글
외주 수익 최대화하기 (퇴사) (2) | 2023.11.26 |
---|---|
테트리스 블럭 안의 합 최대화 하기 (테트로미노) (1) | 2023.11.25 |
2048 게임 (2048 (Easy)) (1) | 2023.11.23 |
정육면체 굴리기 (주사위 굴리기) (0) | 2023.11.18 |
2개의 사탕 (구슬 탈출 2) (0) | 2023.11.18 |