• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

그냥 혼자 풀었는데 다른 답안을 보니 정말 심플하게 풀엇네요!

21.08.19 18:39 작성 조회수 156

0

최솟값 강의를 안듣고 풀엇엇는데 제 답을보니 정말 무식하게 풀엇다는 생각이 드네요 ㅠ

두 숫자의 합을 인덱스로 사용하는걸 생각도 못햇네요. 앞으로는 규칙성 찾는것에 시간을 좀더 투자해야겟어요.

import sys
#sys.stdin=open("input.txt","rt")
N,M=map(int,input().split())
boxn=[]
for i in range(N):
    boxn.append(i+1)
boxm=[]
for i in range(M):
    boxm.append(i+1)
sum_box=[]
sum_set=set()
for i in range(N):
    for j in range(M):
       sum_box.append(boxn[i]+boxm[j])
       sum_set.add(boxn[i]+boxm[j])
sum_list=list(sum_set)
count_num=[]
for x in range(len(sum_set)):
    count_num.append(sum_box.count(sum_list[x]))
for x in range(len(sum_list)):
    sum_list[x]=(sum_list[x],count_num[x])
sum_list.sort(key=lambda x: (-x[1], x[0]))
final_num=[]
final_num.append(sum_list[0][0])
for x in range(len(sum_list)-1):
    if sum_list[0][1]==sum_list[x+1][1]:
        final_num.append(sum_list[x+1][0])
for i in range(len(final_num)):
    print(final_num[i], end=' ')

답변 1

답변을 작성해보세요.

0

안녕하세요^^

네. 앞으로 공부하시면 잘 할 수 있는 재능을 가지고 있으신것 같습니다.