일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- it 이슈
- 구글
- 프로그래머스
- html
- 코딩테스트 연습
- 코딩테스트
- 백준위
- 카카오
- 백준
- IT 트렌드
- 네트워크 관리사 2급 실기
- SSAFY
- 네트워크 관리사 2급
- KT
- IT 동향
- 신문 스크랩
- 신문스크랩
- python
- 싸피셜
- SSAFY 7기
- 리얼클래스
- 네트워크 관리사
- java 객체지향 프로그래밍
- SSAFYcial
- Java
- it 뉴스
- 싸피
- 우테코
- 인앱결제
- 코테
Archives
- Today
- Total
개발자일걸요..?
2798번 블랙잭 본문
728x90
반응형
문제 링크 : www.acmicpc.net/problem/2798
2798번: 블랙잭
첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장
www.acmicpc.net
고려해야할 조건
1. 세 카드를 동시에 뽑기때문에 세 숫자는 모두 다른 수여야 한다.
2. 세 카드의 합이 M을 넘지 않아야 한다.
이를 고려하면 경우의 수는 NC3가지가 되고, 이를 list에 넣은 후 M과의 차이가 가장 적은 값을 찾으면 된다.
import sys
N,M = map(int, sys.stdin.readline().split())
index = list(map(int, sys.stdin.readline().split()))
case = []
for i in range (0,N):
for j in range(i+1,N):
for k in range(j+1,N):
case.append(index[i]+index[j]+index[k])
similar = -1;
for i in range(0, len(case)):
if((case[i]<=M) & (abs(M-case[i]) < abs(M-similar))):
similar = case[i]
print(similar)
list를 짧게 하고자 하면 세 수의 합이 M보다 작은지 확인하는 조건으로 줄일수 있다.
import sys
N,M = map(int, sys.stdin.readline().split())
index = list(map(int, sys.stdin.readline().split()))
case = []
for i in range (0,N):
for j in range(i+1,N):
for k in range(j+1,N):
if((index[i]+index[j]+index[k])<=M):
case.append(index[i]+index[j]+index[k])
similar = -1;
for i in range(0, len(case)):
if(abs(M-case[i]) < abs(M-similar)):
similar = case[i]
print(similar)
또한 아예 list를 사용하는 과정을 삭제하면 아래와 같은 더 간단한 코드로 진행할 수도 있다.
import sys
N,M = map(int, sys.stdin.readline().split())
index = list(map(int, sys.stdin.readline().split()))
case = 0;
for i in range (0,N):
for j in range(i+1,N):
for k in range(j+1,N):
this = index[i]+index[j]+index[k]
if((this<=M)&(abs(M-case) > abs(M-this))):
case = this
print (case)
반응형
'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글
7568번 덩치 (0) | 2021.02.01 |
---|---|
1436번 영화 감독 숌 (0) | 2021.02.01 |
2231번 분해합 (0) | 2021.01.31 |
11729번 하노이 탑 이동순서 (0) | 2021.01.30 |
2447번 별찍기 (0) | 2021.01.30 |
Comments