하루한줄 코딩일기
[인프런 - 파이썬 알고리즘 문제풀이] 2.3 K번째 큰 수 본문
섹션 2.3 K번째 큰 수
👊 내 문제 풀이
3중 for문을 돌며, 카드 3장을 뽑았을 때 나올 수 있는 모든 합의 경우를 answer 리스트에 저장한다. (단, 이미 존재하는 숫자일 경우 저장하지 않는다.) answer 리스트에는 나올 수 있는 모든 합의 경우가 중복 없이 저장되고, 이를 정렬한 후 K번째로 큰 수를 출력한다.
n, k = map(int, input().split()) #첫 줄에 주어진 n, k 입력받기
cards = list(map(int, input().split())) #카드열 입력받기
answer=[]
for i in range(n):
for j in range(i+1, n):
for m in range(j+1, n):
if (cards[i]+cards[j]+cards[m]) not in answer:
answer.append(cards[i]+cards[j]+cards[m])
answer.sort()
print(answer[-k])
채점 결과
💡 강의 해답
set() 자료형을 사용하면 중복값은 저장되지 않으므로, 내 코드의 8번째 줄이 필요 없어진다.
*set은 append(x) add(0)
*set은 sort 기능이 없으므로 리스트화 한 후 정렬해야 한다.
n, k=map(int, input().split())
a=list(map(int, input().split()))
res=set()
for i in range(n):
for j in range(i+1, n):
for m in range(j+1, n):
res.add(a[i]+a[j]+a[m])
res=list(res)
res.sort(reverse=True)
print(res[k-1])
'Algorithm' 카테고리의 다른 글
[인프런 - 파이썬 알고리즘 문제풀이] 2.4 대표값 (0) | 2022.01.24 |
---|---|
[프로그래머스] 두 개 뽑아서 더하기(LV.1) - 파이썬(Python) (0) | 2022.01.24 |
[인프런 - 파이썬 알고리즘 문제풀이] 2.2 K번째 수 (0) | 2022.01.24 |
[인프런 - 파이썬 알고리즘 문제풀이] 2.1 K번째 약수 (0) | 2022.01.23 |
[프로그래머스] 나머지가 1이 되는 수 찾기(LV.1) - 파이썬(Python) (0) | 2022.01.21 |
Comments