티스토리 뷰
문제는 위와 같으며 우선 주어지는 카드의 수가 100 이하이기 때문에 단순하게 모든 경우의 수를 다 구하는 3중 for 문을 사용하여 문제를 풀었습니다.
파이썬 코드는 다음과 같습니다.
from sys import stdin
N, M = map(int, stdin.readline().split())
cards = list(map(int, stdin.readline().split()))
result = 0
length = len(cards)
for i in range(length):
for j in range(i+1, length):
for k in range(j+1, length):
tmp = cards[i] + cards[j] + cards[k]
if M >= tmp > result:
result = tmp
print(result)
자바 코드는 다음과 같습니다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] nm = br.readLine().split(" ");
int N = Integer.parseInt(nm[0]);
int M = Integer.parseInt(nm[1]);
int[] cards = new int[N];
String[] inputs = br.readLine().split(" ");
for (int i = 0; i < cards.length; i++) {
cards[i] = Integer.parseInt(inputs[i]);
}
int result = 0;
for (int i = 0; i < cards.length; i++) {
for (int j = i + 1; j < cards.length; j++) {
for (int k = j + 1; k < cards.length; k++) {
int sum = cards[i] + cards[j] + cards[k];
if (sum <= M && sum > result) {
result = sum;
}
}
}
}
System.out.println(result);
}
}
'알고리즘' 카테고리의 다른 글
[알고리즘 / 백준] 10930 - SHA-256 (0) | 2020.11.08 |
---|---|
[알고리즘 / 백준] 5397 - 키로거 (0) | 2020.11.08 |
[알고리즘 / 백준] 1966 - 프린터 큐 (0) | 2020.11.08 |
[알고리즘 / 백준] 2920 - 음계 (0) | 2020.11.08 |
[알고리즘/백준] 4673 - 셀프 넘버 (0) | 2020.01.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- search
- ionic
- Dynamic Programming
- cloudfront
- 수학
- string
- array
- spring
- ECR
- 에라토스테네스의 체
- EC2
- map
- BFS
- Baekjoon
- SWIFT
- Combination
- 조합
- 순열
- sort
- 프로그래머스
- AWS
- 소수
- java
- CodeDeploy
- permutation
- Algorithm
- CodePipeline
- DFS
- CodeCommit
- programmers
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함