📝 문제
💡 세준이는 N개의 빨대를 가지고 있다.
N개의 빨대 중에 3개의 빨대를 선택했을 때,
이 빨대로 삼각형을 만들 수 있다면, 세 변의 길이의 합의 최댓값을 구하고 싶다.
⚙️ 입력 : 첫째 줄에 빨대의 개수 N이 주어진다.
N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다.
둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다.
빨대의 길이는 1,000,000보다 작거나 같은 자연수이다.
⚙️ 출력 : 첫째 줄에 삼각형 세 변의 길이의 합의 최댓값을 출력한다.
만약 삼각형을 만들 수 없으면 -1을 출력한다.
1448번: 삼각형 만들기
첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다
www.acmicpc.net
✅ 풀이
import sys
n = int(input())
li = []
for i in range(n):
li.append(int(sys.stdin.readline()))
li.sort(reverse = True)
len = -1
for i in range(n-2):
if li[i+1] + li[i+2] > li[i]:
len = max(len, li[i] + li[i+1] + li[i+2])
break
print(len)
💡 까먹었던 사실이지만.. 삼각형 두 변의 길이의 합이 나머지 한 변보다 크면 된다..
다만 입력이 100만 개 까지 들어오므로, 큰 것부터 시작해서 가장 큰 경우가 나오면 바로 멈췄다.
처음에는 별 생각없이 3중 for문을 돌렸는데 시간초과가 발생해서 잘 생각해보니,
그냥 리스트 인덱스로 접근하면 될 문제였다.
📝 문제
💡 세준이는 N개의 빨대를 가지고 있다.
N개의 빨대 중에 3개의 빨대를 선택했을 때,
이 빨대로 삼각형을 만들 수 있다면, 세 변의 길이의 합의 최댓값을 구하고 싶다.
⚙️ 입력 : 첫째 줄에 빨대의 개수 N이 주어진다.
N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다.
둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다.
빨대의 길이는 1,000,000보다 작거나 같은 자연수이다.
⚙️ 출력 : 첫째 줄에 삼각형 세 변의 길이의 합의 최댓값을 출력한다.
만약 삼각형을 만들 수 없으면 -1을 출력한다.
1448번: 삼각형 만들기
첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다
www.acmicpc.net
✅ 풀이
import sys
n = int(input())
li = []
for i in range(n):
li.append(int(sys.stdin.readline()))
li.sort(reverse = True)
len = -1
for i in range(n-2):
if li[i+1] + li[i+2] > li[i]:
len = max(len, li[i] + li[i+1] + li[i+2])
break
print(len)
💡 까먹었던 사실이지만.. 삼각형 두 변의 길이의 합이 나머지 한 변보다 크면 된다..
다만 입력이 100만 개 까지 들어오므로, 큰 것부터 시작해서 가장 큰 경우가 나오면 바로 멈췄다.
처음에는 별 생각없이 3중 for문을 돌렸는데 시간초과가 발생해서 잘 생각해보니,
그냥 리스트 인덱스로 접근하면 될 문제였다.