CSED232 – -Programming Practice- Solved

$ 29.99
Category:

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.

Be the first to review “CSED232 – -Programming Practice- Solved”

Your email address will not be published. Required fields are marked *