백준

백준 2236 칩 만들기 (파이썬)

MC류짱 2023. 9. 22. 15:36

실버문제 잘 안올리라하는데 이 문제는 푼 사람이 많이 없어서 씀

풀이 및 해설

N, K = map(int, input().split())
tmp_nums = list(map(int, input().split()))
nums = []
for _ in range(N):
    nums.append([tmp_nums[_], _, 0])

sorted_nums = sorted(nums, key=lambda x: (-x[0], -x[1]))
rst = []

for k in range(K):
    if k < N:  # 전원선 수가 부품 수보다 클 수 있으므로 확인
        sorted_nums[k][2] = sorted_nums[k][1] + 1
        rst.append(sorted_nums[k][1] + 1)

# 연결된 전원선 출력
for r in rst:
    print(r)

# 남은 전원선 출력
for _ in range(K - len(rst)):
    print(0)

for num in nums:
    print(num[2])
  • 뭔가 문제가 좀 이상했음
  • k가 N보다 크게 나올 수 있다는 것도 이상함(이것때매 좀 해매서 짜증났음)
  • 걍 제일 큰 값에 달아주면 자기 제곱이니까 그렇게 품
  • 출력도 뭐 오름차순 내림차순 이런 말도 없음