# C - 積み重ね (opens new window)

# 概要

  • NN個のダンボールの重さが順に与えられ, それを順に積んでいく
  • 上に積まれているものより重いものを下に置かなければならない
  • 積み重ねる山の個数の最小値を求めよ

# 思考

  • ソートして脳死数え上げ?
  • テストケースに違和感がある
  • 与えられた順に積まなければならないらしい
  • 最小値をもっておけば良いのでは?
  • vector<stack>?
  • 一番上だけ持っていればおk
  • priority_queue< int, vector<int>, greater<int> >で実現できそう
  • 実装
  • AC!

# 気づいたこと・感想

  • テストケースが理解できないときは大抵誤読
    • この問題は分かりにくいが
  • priority_queueのtop最小値は, priority_queue< int, vector<int>, greater<int> >
    • greater<int>()と書くのはsortするとき
Last Updated: 9ヶ月前