▶문제
문제를 정리하자면
- 플레이어는 N장의 카드 중 3장의 카드를 뽑는다.
- 딜러가 외친 숫자 M을 넘지 않으면서 최대한 가까운 카드 3장의 합을 출력한다.
- 카드의 개수 N은 3이상 100이하, 딜러가 외치는 숫자 M은 10이상 300,000 이하이다.
▶풀이
이 문제 같은 경우는 모든 경우의 수를 다 돌아야한다.
① map 함수 사용
map() : 여러 개의 데이터를 받아서 각각의 요소에 함수를 적용한 결과를 반환하는 내장 함수
기본 문법: map(function, iterable)
function : 각 요소에 적용할 함수
iterable: 리스트, 튜플 등 함수를 적용할 데이터 집합
-> iterable의 각 항목을 순회하면서 function을 적용하고, 그 결과를 새로운 iterable 객체로 반환
이 문제에선 사용자로부터 두 개의 정수를 입력받아 리스트로 만들어 리스트의 각 요소를 정수로 변환한다.
② 삼중 반복문
리스트의 원소를 조합하여 합이 특정 값 M 이하이면서 최대값인 경우를 찾는다.
코드별 설명은 주석으로 달았다.
map 함수를 자세히 알게된 문제였다!
'2024 SWLUG > 백준' 카테고리의 다른 글
1주차_백준(1) - 신나는 함수 실행 (0) | 2024.09.13 |
---|---|
4주차_백준 (2) - 분해합 (0) | 2024.05.22 |
3주차_백준 (2) - 부녀회장이 될테야 (0) | 2024.05.22 |
3주차_백준 (1) - 1,2,3 더하기 (0) | 2024.05.22 |
2주차_백준 (2) - 양팔저울 (0) | 2024.05.22 |