2024 SWLUG/백준

4주차_백준 (1) - 블랙잭

un_plugged 2024. 5. 22. 14:07

▶문제

문제를 정리하자면

  1. 플레이어는 N장의 카드 중 3장의 카드를 뽑는다.
  2. 딜러가 외친 숫자 M을 넘지 않으면서 최대한 가까운 카드 3장의 합을 출력한다.
  3. 카드의 개수 N은 3이상 100이하, 딜러가 외치는 숫자 M은 10이상 300,000 이하이다.

▶풀이

이 문제 같은 경우는 모든 경우의 수를 다 돌아야한다.

① map 함수 사용

map() : 여러 개의 데이터를 받아서 각각의 요소에 함수를 적용한 결과를 반환하는 내장 함수

기본 문법: map(function, iterable)

function : 각 요소에 적용할 함수

iterable: 리스트, 튜플 등 함수를 적용할 데이터 집합

-> iterable의 각 항목을 순회하면서 function을 적용하고, 그 결과를 새로운 iterable 객체로 반환

이 문제에선 사용자로부터 두 개의 정수를 입력받아 리스트로 만들어 리스트의 각 요소를 정수로 변환한다.

② 삼중 반복문

리스트의 원소를 조합하여 합이 특정 값 M 이하이면서 최대값인 경우를 찾는다.

코드별 설명은 주석으로 달았다.

map 함수를 자세히 알게된 문제였다!