Description
첫λ²μ§Έ assignmentλ νμλ€μ΄ Cνλ‘κ·Έλλ°μ λ°°μ λ κ²μ remindνκ³ C++ νλ‘κ·Έλλ°μ κΈ°μ΄ μ μΈ μ€μ΅, κ·Έλ¦¬κ³ μ»΄νμΌ νκ²½ λ±μ μΈν ν΄μ μ»΄νμΌ ν΄ λ³Ό μ μκ² νλκ² λͺ©μ μ λλ€.
μ±μ λ°©μ
λ¬Έμ λ³λ‘ λ°°ν¬λ μμ datasetμ ν¬ν¨ν μ±μ μ© dataset 15κ°λ₯Ό λͺ¨λ ν΅κ³Όνλ©΄ μ΄μ μ λ°μ μ μλ€. μ±μ μ© datasetμλ μμ datasetμ μλ dataλ μ‘΄μ¬νλ λ³ΈμΈμ΄ test caseλ₯Ό μ§μ λ§λ€ μ΄ ν
μ€νΈν΄λ³Ό κ²μ κΆμ₯ν¨. μ 체 datasetμ ν΅κ³Όνμ§ λͺ»νμ¬λ μ λ΅μ λ§μΆ test caseμ λν΄ λΆλΆ μ μλ₯Ό μΈμ νλ€.
λͺ¨λ test caseμ λνμ¬ 3μ΄ λ΄μ κ²°κ³Όκ° μΆλ ₯λμ΄μΌ νλ€. (μ΄κ³Όμ 0μ ) λͺ¨λ inputκ³Ό outputμ STDINκ³Ό STDOUTμ μ¬μ©νλ€. (νμΌ μ
μΆλ ₯ X) κ° λ¬Ένλ³λ‘ μ ν λ°°μ μ λ³΄κ³ μ μ μ 10μ μ λν΄ μ΄ 100μ λ§μ μΌλ‘ νλ€.
μ£Όμμ¬ν λμ λ©λͺ¨λ¦¬ ν λΉ μ¬μ©μ, ν λΉ ν΄μ λ₯Ό μ λλ‘ νμ§ μμ κ²½μ° ν΄λΉ λ¬Έμ 10%κ°μ .
Compileμ΄ μλκ±°λ μ€νμ΄ μλ κ²½μ° 0μ (minGWμμμ g++ compiler μ¬μ©). λ³΄κ³ μμ κ° μ½λ main μμ (μ£ΌμμΌλ‘) Honor codeλ₯Ό λͺ
μν΄μΌ ν¨ (μμ μ 0μ ). Cheatingμ 0μ , μ°Έκ³ ν μλ£ λ° μ¬μ΄νΈλ λ³΄κ³ μμ referenceλ‘ μ λλ€. λͺ¨λ μ½λλ μΈν°λ· μμ μ½λμ λμ‘°ν΄λ³Ό κ²μ΄λ μ°Έμ‘°ν λ μ΄ν΄ν ν λ³ΈμΈμ΄ μλ‘ μ§€ κ².
λ¬Έμ μ λ°λΌ 100λ§ ν¬κΈ°μ arrayλ₯Ό μ¬μ©ν΄μΌ νλλ°, local variableλ‘λ ν΄λΉ ν¬κΈ°μ arrayκ° μ‘ νμ§ μλλ€. λ³Έ κ³Όμ μ λν΄μλ§ global variableμ μ¬μ©μ κΆμ₯ν¨. μΌλ°μ μΈ νλ‘κ·Έλλ°μ κ²½μ°μλ global variable μ¬μ©μ΄ κΆμ₯λμ§λ μμΌλ, λ³Έ κ³Όμ μ λν ν λ‘κ·Έλλ°μ κ²½μ° global variable μμ΄ λ¬Έμ λ₯Ό νΈλ κ²μ΄ μ΄λ €μΈ μ μμ.
μΆλ ₯ μμμ μ§ν¬ κ². μλ₯Ό λ€μ΄ β3βμ΄ λ΅μΈ κ²½μ°, β3β μ΄μΈμ β βκ³Ό κ°μ λΆκ°μ μΈ whitespace, μΊλ¦¬μ§ λ¦¬ν΄ λ±μ λ¬Έμλ₯Ό ν¬ν¨ν κ²½μ° 0μ μ²λ¦¬λ¨.
μ μΆ λ°©μ
μ μΆ μ½λλ λ¬Ένλ³λ‘ βprob_1β, βprob_2β, βprob_3β ν΄λλ₯Ό λ§λ λ€. κ° ν΄λμλ μ½λ νμΌλ€(*.cpp,
*.h)μ μ μ₯νλ€. μ½λμλ κ°λ¨ν μ£Όμμ ν΅ν΄ μ€λͺ
μ ν¬ν¨μν¨λ€. μμ ν΄λμ λ°λμ Makefileμ λ§λ€μ΄μ make allλ₯Ό μ΄μ©νμ¬ μΈ λ¬Έμ λͺ¨λ μ»΄νμΌνμ¬ κ° λ¬Έμ ν΄λμ μ€ννμΌμ΄ μμ±λ μ μμ΄μΌ νλ€. make allλ₯Ό ν΅ν΄ μμ±λλ μ€ννμΌ μ΄λ¦μ νλ²_prob_λ¬Έμ λ²νΈ.exe λ‘ ν΅μΌνλλ‘ νλ€. μ΄ λ, μμ€ μ½λ νμΌ μΈμ, λΆνμν νμΌλ€(*.obj, *.o, *.exe, a.out λ±)μ zip νμΌμ ν¬ν¨νμ§ μλλ€. μ μΆ λ³΄κ³ μλ λ³΄κ³ μ μμμ λ°λΌ κ·Έλ¦Ό ν¬ν¨ 5νμ΄μ§ μ΄λ΄λ‘ μμ±νλ©°, PDF νμΌλ‘ μ μΆνλ€. νμΌ μ΄λ¦μ βνλ².pdfβ λ‘ νλ€. μ½λμ λ³΄κ³ μ νμΌ μ 체λ₯Ό βνλ².zipβ νμΌλ‘ λ¬Άμ΄μ μ μΆνλ€.
μ μΆ λ°©μμ μ§ν€μ§ μμ κ²½μ° μ΄μ μμ 10% κ°μ μλ μΌμͺ½ μ¬μ§μ μ μΆ νμΌ μμμ΄λ©° μ€λ₯Έμͺ½μ ν΄λΉ ν΄λμμ make allμ ν νμ λͺ¨μ΅μ΄λ€.
μ±μ κΈ°μ€
β’ νλ‘κ·Έλ¨ κΈ°λ₯ (μ 체μ μμ 50%) νλ‘κ·Έλ¨μ΄ μꡬ μ¬νμ λͺ¨λ λ§μ‘±νλ©΄μ μ¬λ°λ‘ μ€νλλκ°?
μ‘°κ΅κ° νλ‘κ·Έλ¨μ μ€νν΄ λ³΄κ³ μ±μ
β’ νλ‘κ·Έλ¨ μ€κ³ λ° κ΅¬ν (μ 체μ μμ 35%) μꡬ μ¬νμ λ§μ‘±νκΈ° μν λ³μ λ° μκ³ λ¦¬μ¦ μ€κ³κ° μ λμλκ°? μ€κ³λ λ΄μ©μ΄ μꡬλ μΈμ΄λ₯Ό μ΄μ©νμ¬ μ μ ν ꡬνλμλκ°? λ³΄κ³ μμ μ€λͺ
λ νλ‘κ·Έλ¨ μ€κ³ λ° κ΅¬νμ κ΄ν λ΄μ©μ κΈ°μ€μΌλ‘ μ±μ λ³΄κ³ μμ μ€λͺ
λ λ΄μ©μ νλ‘κ·Έλ¨μ μμ€ μ½λλ₯Ό μ°Έμ‘°νμ¬ νμΈ
β’ νλ‘κ·Έλ¨μ κ°λ
μ±(readability) (μ 체μ μμ 5%)
νλ‘κ·Έλ¨μ΄ μ½κΈ° μ½κ³ μ΄ν΄νκΈ° μ½κ² μμ±λμλκ°? λ³μ λͺ
μ΄ λ¬΄μμ μλ―Ένλμ§ μ΄ν΄νκΈ° μ¬μ΄κ°?
νλ‘κ·Έλ¨μ μμ€ μ½λλ₯Ό μ΄ν΄νκΈ° μ½λλ‘ μ£Όμμ μ λΆμλκ°?
β’ λ³΄κ³ μ κ΅¬μ± λ° λ΄μ©, μμ (μ 체μ μμ 10%) λ³΄κ³ μλ μ μ ν λ΄μ©μΌλ‘ μ΄ν΄νκΈ° μ½κ³ 보기 μ’κ² μ μμ±λμλκ°?
λ³΄κ³ μμ κΈ°μ μ μΈ λ΄μ©κ³Ό ꡬμ±μ΄ μ μ νκ°, μ€λͺ
μ΄ κ°κ²°νκ³ λͺ
λ£νκ² λμλμ§λ₯Ό κΈ°μ€μΌλ‘ μ±μ λ³΄κ³ μμ μμμ μ λ°λλκ°?
β’ μΆκ° μ μ (μ΅λ μ 체μ μμ 10%) μꡬ μ¬ν μΈμ μΆκ° κΈ°λ₯ λλ λ
μ°½μ μΌλ‘ μκ°ν κΈ°λ₯μ ꡬνν κ²½μ° μΆκ°λ κΈ°λ₯μ λ
μ°½μ±κ³Ό λμ΄λλ₯Ό κΈ°μ€μΌλ‘ μ±μ
β’ κ°μ μ μΆ κΈ°νμ΄ μ§λλ©΄ μ»μ μ΄μ μ 20% κ°μ μΆκ°λ‘ ν루(24μκ°) λ¦μ λλ§λ€ 20%μ© κ°μ
1μΌ μ΄λ΄ μ§μ°: 20% κ°μ , 2μΌ μ΄λ΄ μ§μ°: 40% κ°μ , 5μΌ μ΄μ μ§μ°: 0μ
λ€λ₯Έ μ¬λμ νλ‘κ·Έλ¨μ΄λ μΈν°λ·μ μλ νλ‘κ·Έλ¨μ 볡μ¬(copy)νκ±°λ κ°λ¨ν μμ ν΄μ μ μΆνλ©΄ νμ μ 무쑰건 βFβκ° λλ€. μ΄λ¬ν λΆμ νμκ° λ°κ²¬λλ©΄ νκ³Όμμ μ ν κΈ°μ€μ λ°λΌ μΆκ°μ λΆμ΄μ΅μ΄ μμ μ μλ€.
Makefileμ΄ μκ±°λ makeλ₯Ό ν΅ν΄ μ μμ μΌλ‘ μ»΄νμΌμ΄ λμ§ μμ κ²½μ° λͺ¨λ test dataμ λνμ¬ μ€νλμ§ μλ κ²μΌλ‘ λ³Έλ€.
[μ°Έκ³ ] C++μμ Cμ Input, Output μ¬μ© cstdio νμΌμ includeνλ€. printf -> std::printf, scanf -> std::scanfλ‘ λ³ννμ¬ μ¬μ©νλ€
μμ
μ νλ‘κ·Έλ¨μμ intν λ³μλ₯Ό 1κ° μ λ ₯λ°κ³ , βHello World!β문ꡬμ μ λ ₯ λ°μ λ³μλ₯Ό μΆλ ₯νλ€.
κΈ°ν
C++λ₯Ό μκ³ μλ νμλ€μ νλ‘κ·Έλ¨μ C++λ‘ μμ±ν΄λ μ’μ΅λλ€. C++λ₯Ό μμ§ λͺ¨λ₯΄λ νμλ€ μ Cλ₯Ό μ¬μ©νλ©΄ λ©λλ€.
μ΄λ―Έ STLμ μκ³ μλ κ²½μ°μλ μ¬μ© κ°λ₯νκ³ (e.g., std::queue, std::vector), λͺ¨λ₯΄λ κ²½μ°μλ κ·Έλ₯ arrayλ₯Ό μ¬μ©νλ©΄ λ©λλ€. μλͺ»λ κ²½μ°μ μ
λ ₯μ μ£Όμ΄μ§μ§ μμ΅λλ€. μμΈμ²λ¦¬λ₯Ό ν νμλ μμ΅λλ€.
[μ°Έκ³ ] Makefile
Makefile λ§λλ λ²μ λν΄μ ꡬκΈλ§μ μ‘°κΈλ§ ν΄λ μ½κ² μ μ μκΈ° λλ¬Έμ λ°λ‘ μ€λͺ
μ λ§λ€μ§ μμμ΅λλ€. λ€λ§ λ³Έ κ³Όμ λ μλμ°μμ μ»΄νμΌνλ κ²μ κΈ°λ³ΈμΌλ‘ νκ³ μκΈ° λλ¬Έμ clean λͺ
λ Ήμ 보ν΅μ μ€λͺ
κ³Ό λ¬λ¦¬ rm λμ del λͺ
λ Ήμ΄λ₯Ό μ¬μ©ν΄μΌ ν©λλ€. κ·Έ μΈμλ λκ°μ΄ νλ©΄ λ©λλ€.
μ¨μ ν μ¬κ°ν (λ°°μ : 20μ )
: ν, ν€μλ : μ΅λ곡μ½μ
μ¬μμκ²λ κ°λ‘ κΈΈμ΄κ° W, μΈλ‘ κΈΈμ΄κ° HμΈ λͺ¨λμ’
μ΄κ° μλ€. κ·Έλ°λ° μ¬μμ΄ μ μ νμ₯μ€ μ²μ λ₯Ό νλ¬ κ° μ¬μ΄, μ¬μμ΄ ν€μ°λ κ³ μμ΄μΈ λλΆκ° λͺ¨λμ’
μ΄λ₯Ό μ νν λκ°μ λͺ¨μμΌλ‘ μλΌλ²λ Έλ€. μλ¦° λͺ¨λμ’
μ΄λ₯Ό λ°κ²¬ν μ¬μμ λͺ¨λμ’
μ΄μ μΌλΆ μ¬κ°νλ€μ μλ € μ¬μ©ν μ μμμ κΉ¨λ¬μλ€. μλ¦¬μ§ μμ μ¨μ ν μ¬κ°νμ κ³Όμ° λͺ κ°μΌκΉ?
μλ₯Ό λ€μ΄ μλ κ°λ‘κ° 7, μΈλ‘κ° 5μΈ λͺ¨λμ’
μ΄μ΄λ€. μ¬μμ΄ μ¨μ ν μ¬κ°νλ§ μμΉ μ ν΄λ³΄λ 24 κ°μμ μ μ μμλ€. Wμ Hκ° μ
λ ₯λ λ μ¨μ ν μ¬κ°νμ μλ₯Ό μΆλ ₯νμμ€.
[μ
λ ₯]
Wμ Hκ° κ³΅λ°±μ κ°κ²©μΌλ‘ μ
λ ₯λλ€. (1 β€ W, H β€ 108) λ¨, κ³±ν΄μ 109μ λλ κ°μ μ
λ ₯λμ§ μλ λ€.
[μΆλ ₯]
μ¨μ ν μ¬κ°νμ μλ₯Ό μΆλ ₯νλ€.
[μ
μΆλ ₯ μμ]
Input Output
7 5 24
리μ½λ (λ°°μ : 30μ )
: μ€, ν€μλ : νμμκ³ λ¦¬μ¦ (Greedy Algorithm)
λμ°λ€ λ°μ΄ μ μ¬μ λ¨ΉμΌλ¬ κ° μ¬μ΄, λλΆκ° λͺ°λ λ€μ΄μ λμ°λ€ λ° λ¬Όκ±΄λ€μ νμ³€λ€! λ€λ₯Έ 물건 λ€μ μ²μ²ν μ°Ύμλ λμ§λ§, λΉμ₯ λ€μ μμ
μ΄ μμ
μμ
μ΄λΌ 리μ½λκ° νμνλ€. λ€νν λμ°λ€ λ°μ λλΆμ μΉ¨μ
μ μ΅μν΄μ Έ λͺλͺ νμλ€μ μ¬λΆμ 리μ½λλ₯Ό κ°μ§κ³ μλ€κ³ νλ€. κ·Έλ°λ° λμ° λ€ λ° νμλ€μ μ²κ²°μ μ€μμνκΈ° λλ¬Έμ λ³ΈμΈκ³Ό μΉν, λ°λ‘ μ λ²νΈ νμκ³Ό λ°λ‘ λ€ λ²νΈ νμ μκ²λ§ 리μ½λλ₯Ό λΉλ €μ€ μ μλ€κ³ νλ€. μ΄μ λμ°λ κ°μ₯ λ§μ νμλ€μ΄ μμ
μμ
μ 리μ½λλ₯Ό κ°μ Έκ° μ μλλ‘ λ°©λ²μ μ°ΎμμΌ νλ€. μ 체 νμ μ€ λ¦¬μ½λλ₯Ό μμ΄λ²λ¦° νμμ λ²νΈμ μ¬λΆμ 리μ½λλ₯Ό κ°μ§κ³ μλ νμμ λ²νΈκ° μ£Όμ΄μ§λ©΄ 리μ½λλ₯Ό λ€κ³ μμ
μμ
μ κ° μ μλ μ΅λ νμ μλ₯Ό ꡬνμμ€.
λ¨, νμμ λ²νΈλ 1λ²λΆν° νμ μμΈ nλ²κΉμ§λ‘ λΆμ¬λμ΄ μμΌλ©°, μ¬λΆμ 리μ½λλ νλλ°μ μ μ΄ μ¬λΆμ 리μ½λλ₯Ό κ°μ§κ³ μλ νμμ΄ λλμ λΉν κ²½μ°μλ λ³ΈμΈμ μΈ μ μμ§λ§ λΉλ €μ£Όμ§λ λͺ»νλ€.
Input Output
8 3 2
1 3 5
4 5 7
μλ₯Ό λ€μ΄, 5λͺ
μ νμ μ€ 2λ² νμκ³Ό 4λ² νμμ΄ λ¦¬μ½λλ₯Ό μμ΄λ²λ Έκ³ 3λ²νμμ΄ μ¬λΆμ 리μ½λ λ₯Ό κ°μ§κ³ μλ€λ©΄ 3λ² νμμ΄ 2λ²νμμκ² λ¦¬μ½λλ₯Ό λΉλ €μ£Όμ΄ 4λͺ
μ νμμ΄ λ¦¬μ½λλ₯Ό κ°μ Έκ° μ μλ€.
[μ
λ ₯]
첫λ²μ§Έ μ€μ λμ°λ€ λ° μ 체 νμμμ λλλΉν νμ μ, μ¬λΆ 리μ½λλ₯Ό κ°μ§κ³ μλ νμ μκ° μ£Όμ΄μ§λ€. (0 β€ n β€ 105, 0 β€ k,l β€ n)
λμ§Έ μ€μλ kκ°μ 리μ½λλ₯Ό λλ λΉν νμλ€μ λ²νΈκ° 곡백μ κ°κ²©μΌλ‘ μ
λ ₯λλ€.
μ
μ§Έ μ€μλ lκ°μ μ¬λΆμ 리μ½λλ₯Ό κ°μ§κ³ μλ νμλ€μ λ²νΈκ° 곡백μ κ°κ²©μΌλ‘ μ
λ ₯λλ€.
[μΆλ ₯]
리μ½λλ₯Ό κ°μ Έκ° μ μλ μ΅λ νμ μλ₯Ό μΆλ ₯μν¨λ€.
[μ
μΆλ ₯ μμ]
Input Output
5 2 1
2 4
3 4
μμ€ν€ μμ (λ°°μ : 40μ )
: μ, ν€μλ : λμ κ³νλ² (Dynamic Programming)
λλΆλ μ μ£Όκ°μ΄λ€. κ·Έλ°λ° μ§ μμμ μμ€ν€ μμνκ° μ΄λ¦°λ€κ³ ν΄μ μ°Έκ°νλ¬ κ°λ€. μμ€ν€ μ μνμλ ν
μ΄λΈ μμ λ€μν μμ€ν€κ° λ€μ΄μλ μμ΄ μΌλ ¬λ‘ λμ¬μμλ€. λλΆλ μ΅λν λ§μ μμ€ν€λ₯Ό λ§λ³΄λ € νλλ°, μμ€ν€ μμνμλ λ€μκ³Ό κ°μ μ격ν κ·μΉμ΄ μλ€.
1. μμ€ν€ μμ μ ννλ©΄ κ·Έ μμ μλ μμ€ν€λ λͺ¨λ λ§μ
μΌ νλ©° λ§μ νμλ μ μ리μ λ€μ λ¬μΌ νλ€.
2. μ°μμΌλ‘ μ΄μ΄μ μΈ μμ λ§μ€ μ μλ€.
λλΆλ₯Ό λμ λλΆκ° μ΅λν λ§μ μμ μμ€ν€λ₯Ό λ§μ€ μ μλλ‘ νμ. 1λΆν° nκΉμ§μ λ²νΈκ° λΆμ΄ μλ μμ€ν€ μμ΄ μμλλ‘ ν
μ΄λΈ μμ μμΌλ©° κ° μμ€ν€μ μμ΄ μ£Όμ΄μ‘μ λ λλΆκ° λ§μ€ μ μλ μ΅λμ μμ μΆλ ₯νμμ€.
[μ
λ ₯]
첫λ²μ§Έ μ€μ μ 체 μμ€ν€ μμ μκ° μ£Όμ΄μ§λ€. (1 β€ n β€ 10,000)
λμ§Έ μ€λΆν° n+1λ²μ§Έ μ€κΉμ§ μμ€ν€ μμ λ€μ΄μλ μμ€ν€μ μμ΄ μμλλ‘ μ£Όμ΄μ§λ€. κ° μμ€ν€ μ μμ 1000μ΄νμ μμ°μμ΄λ€.
[μΆλ ₯]
λλΆκ° λ§μ€ μ μλ μμ€ν€μ μ΅λλμ μΆλ ₯νλ€.
[μ
μΆλ ₯ μμ]
Input Output
6
6
10
13
9
8
1 33




Reviews
There are no reviews yet.