[백준] 2798번 블랙잭 (Python)

2021. 3. 15. 19:13·알고리즘/백준
728x90
반응형

문제

 

www.acmicpc.net/problem/2798

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

 

코드

N, M = map(int,(input().split()))

d = list(map(int, input().split())) # 카드 리스트

result = 0
Max = 0

for i in range(N-2): # 3중 for문을 돌면서 겹치지 않게 범위를 지정
    for j in range(i+1,N-1):
        for k in range(j+1,N):
            if d[i]+d[j]+d[k] > M: # 3개의 값 더한것이 M보다 크다면 넘어감
                continue
            else:
                result = d[i]+d[j]+d[k]
                if Max <= result: # M과 가장 유사한 값은 가장 큰값이기 때문에 비교해서 큰값을 저장
                    Max = result

print(Max)

 

코드설명

카드 리스트를 받아서 겹치지 않게 3장을 뽑아 M보다 크지 않으면서 가장 가까운 값을 찾아야한다.

 

3장을 뽑아야 하기 때문에 3중for문을 돌고 겹치지않게 뽑기위해 처음 for문은 N-2전까지 다음 for문은 i값보다 1크면서 N-1전까지 돌고 마지막 for문은 j보다 1크면서 N전까지 돌게 범위를 잡는다.

 

합이 M보다 크다면 넘어가고 합이 M보다 작거나 같으면서 가장 큰값을 저장해둔다음 출력해준다.

 

다른풀이

from itertools import combinations

n, m = map(int,input().split())

card = list(map(int, input().split()))
com = list(combinations(card, 3))
total = 0
for i in com:
    if sum(i) <= m:
        total = max(total, sum(i))
print(total)

combinations를 이용하여 조합을 구한다음 조합에 합이 m이랑 같거나 작은값들 중에서 가장 큰값을 구한다.

반응형
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 1541번 잃어버린 괄호 (Python)  (0) 2021.03.16
[백준] 2231번 분해합 (Python)  (0) 2021.03.15
[백준] 2108번 통계학 (Python)  (0) 2021.03.15
[백준] 1260번 DFS와 BFS (Python)  (0) 2021.03.14
[백준] 4949번 균형잡힌 세상 (Python)  (0) 2021.03.14
'알고리즘/백준' 카테고리의 다른 글
  • [백준] 1541번 잃어버린 괄호 (Python)
  • [백준] 2231번 분해합 (Python)
  • [백준] 2108번 통계학 (Python)
  • [백준] 1260번 DFS와 BFS (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196)
      • study (1)
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1)
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    해결
    알고리즘
    java
    회고
    SFlash
    카카오인턴
    백준
    jpa
    orm
    스파르타코딩클럽
    조합
    그리디
    정리
    항해마켓
    실전프로젝트
    SpringBoot
    항해99
    미니프로젝트
    파이썬
    브루트포스
    김영한
    에러
    프로그래머스
    코딩테스트
    버그
    카카오코딩테스트
    괄호
    인프런
    spring
    후기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[백준] 2798번 블랙잭 (Python)
상단으로

티스토리툴바