λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

전체 κΈ€

(97)
[Algorithm] 동전2 (λ°±μ€€ - 2294) πŸ“‹ 문제 nκ°€μ§€ μ’…λ₯˜μ˜ 동전이 μžˆλ‹€. 이 동전듀을 μ λ‹Ήνžˆ μ‚¬μš©ν•΄μ„œ, κ·Έ κ°€μΉ˜μ˜ 합이 k원이 λ˜λ„λ‘ ν•˜κ³  μ‹Άλ‹€. κ·ΈλŸ¬λ©΄μ„œ λ™μ „μ˜ κ°œμˆ˜κ°€ μ΅œμ†Œκ°€ λ˜λ„λ‘ ν•˜λ €κ³  ν•œλ‹€. 각각의 동전은 λͺ‡ κ°œλΌλ„ μ‚¬μš©ν•  수 μžˆλ‹€. μ‚¬μš©ν•œ λ™μ „μ˜ ꡬ성이 같은데, μˆœμ„œλ§Œ λ‹€λ₯Έ 것은 같은 κ²½μš°μ΄λ‹€. μž…λ ₯ 첫째 쀄에 n, kκ°€ μ£Όμ–΄μ§„λ‹€. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) λ‹€μŒ n개의 μ€„μ—λŠ” 각각의 λ™μ „μ˜ κ°€μΉ˜κ°€ μ£Όμ–΄μ§„λ‹€. λ™μ „μ˜ κ°€μΉ˜λŠ” 100,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€. κ°€μΉ˜κ°€ 같은 동전이 μ—¬λŸ¬ 번 μ£Όμ–΄μ§ˆ μˆ˜λ„ μžˆλ‹€. 좜λ ₯ 첫째 쀄에 μ‚¬μš©ν•œ λ™μ „μ˜ μ΅œμ†Œ 개수λ₯Ό 좜λ ₯ν•œλ‹€. λΆˆκ°€λŠ₯ν•œ κ²½μš°μ—λŠ” -1을 좜λ ₯ν•œλ‹€. μž…μΆœλ ₯ 예 예제 μž…λ ₯ 예제 좜λ ₯ 3 15 1 5 12 3 ✏️ 풀이 μ „ν˜•μ μΈ DPλ¬Έμ œμ˜€λ‹€. λ‚˜λŠ” DP 점..
[Algorithm] νŒ¨μ…˜μ™• μ‹ ν•΄λΉˆ (λ°±μ€€ - 9375) πŸ“‹ 문제 ν•΄λΉˆμ΄λŠ” νŒ¨μ…˜μ— 맀우 λ―Όκ°ν•΄μ„œ ν•œλ²ˆ μž…μ—ˆλ˜ μ˜·λ“€μ˜ 쑰합을 μ ˆλŒ€ λ‹€μ‹œ μž…μ§€ μ•ŠλŠ”λ‹€. 예λ₯Ό λ“€μ–΄ 였늘 ν•΄λΉˆμ΄κ°€ μ•ˆκ²½, μ½”νŠΈ, μƒμ˜, μ‹ λ°œμ„ μž…μ—ˆλ‹€λ©΄, λ‹€μŒλ‚ μ€ λ°”μ§€λ₯Ό μΆ”κ°€λ‘œ μž…κ±°λ‚˜ μ•ˆκ²½λŒ€μ‹  렌즈λ₯Ό μ°©μš©ν•˜κ±°λ‚˜ ν•΄μ•Όν•œλ‹€. ν•΄λΉˆμ΄κ°€ κ°€μ§„ μ˜μƒλ“€μ΄ μ£Όμ–΄μ‘Œμ„λ•Œ κ³Όμ—° ν•΄λΉˆμ΄λŠ” μ•ŒλͺΈμ΄ μ•„λ‹Œ μƒνƒœλ‘œ λ©°μΉ λ™μ•ˆ 밖에 λŒμ•„λ‹€λ‹ 수 μžˆμ„κΉŒ? μž…λ ₯ 첫째 쀄에 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ μ£Όμ–΄μ§„λ‹€. ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” μ΅œλŒ€ 100이닀. 각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 첫째 μ€„μ—λŠ” ν•΄λΉˆμ΄κ°€ κ°€μ§„ μ˜μƒμ˜ 수 n(0 ≤ n ≤ 30)이 μ£Όμ–΄μ§„λ‹€. λ‹€μŒ nκ°œμ—λŠ” ν•΄λΉˆμ΄κ°€ κ°€μ§„ μ˜μƒμ˜ 이름과 μ˜μƒμ˜ μ’…λ₯˜κ°€ 곡백으둜 κ΅¬λΆ„λ˜μ–΄ μ£Όμ–΄μ§„λ‹€. 같은 μ’…λ₯˜μ˜ μ˜μƒμ€ ν•˜λ‚˜λ§Œ μž…μ„ 수 μžˆλ‹€. λͺ¨λ“  λ¬Έμžμ—΄μ€ 1이상 20μ΄ν•˜μ˜ μ•ŒνŒŒλ²³ μ†Œλ¬Έμžλ‘œ μ΄λ£¨μ–΄μ ΈμžˆμœΌλ©° 같은 이름을 κ°€μ§„ μ˜μƒ..
[Algorithm] 상범 λΉŒλ”©(λ°±μ€€ - 6593) πŸ“‹ 문제 당신은 상범 λΉŒλ”©μ— κ°‡νžˆκ³  λ§μ•˜λ‹€. μ—¬κΈ°μ„œ νƒˆμΆœν•˜λŠ” κ°€μž₯ λΉ λ₯Έ 길은 λ¬΄μ—‡μΌκΉŒ? 상범 λΉŒλ”©μ€ 각 λ³€μ˜ 길이가 1인 μ •μœ‘λ©΄μ²΄(λ‹¨μœ„ μ •μœ‘λ©΄μ²΄)둜 μ΄λ£¨μ–΄μ Έμžˆλ‹€. 각 μ •μœ‘λ©΄μ²΄λŠ” 금으둜 이루어져 μžˆμ–΄ μ§€λ‚˜κ°ˆ 수 μ—†κ±°λ‚˜, λΉ„μ–΄μžˆμ–΄μ„œ μ§€λ‚˜κ°ˆ 수 있게 λ˜μ–΄μžˆλ‹€. 당신은 각 μΉΈμ—μ„œ μΈμ ‘ν•œ 6개의 μΉΈ(동,μ„œ,남,뢁,상,ν•˜)으둜 1λΆ„μ˜ μ‹œκ°„μ„ λ“€μ—¬ 이동할 수 μžˆλ‹€. 즉, λŒ€κ°μ„ μœΌλ‘œ μ΄λ™ν•˜λŠ” 것은 λΆˆκ°€λŠ₯ν•˜λ‹€. 그리고 상범 λΉŒλ”©μ˜ λ°”κΉ₯면도 λͺ¨λ‘ 금으둜 λ§‰ν˜€μžˆμ–΄ 좜ꡬλ₯Ό ν†΅ν•΄μ„œλ§Œ νƒˆμΆœν•  수 μžˆλ‹€. 당신은 상범 λΉŒλ”©μ„ νƒˆμΆœν•  수 μžˆμ„κΉŒ? λ§Œμ•½ κ·Έλ ‡λ‹€λ©΄ μ–Όλ§ˆλ‚˜ 걸릴까? μž…λ ₯ μž…λ ₯은 μ—¬λŸ¬ 개의 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ 이루어지며, 각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” μ„Έ 개의 μ •μˆ˜ L, R, C둜 μ‹œμž‘ν•œλ‹€. L(1 ≤ L ≤ 30)은 상범 λΉŒλ”©μ˜ μΈ΅ 수이..
[Algoruthm] 침투 (λ°±μ€€ - 13565) 문제 μΈμ œλŒ€ν•™κ΅ 생화학연ꡬ싀에 μž¬μ§μ€‘μΈ μ„κ΅μˆ˜λŠ” μ „λ₯˜κ°€ 침투(percolate) ν•  수 μžˆλŠ” μ„¬μœ  λ¬Όμ§ˆμ„ κ°œλ°œν•˜κ³  μžˆλ‹€. 이 μ„¬μœ  λ¬Όμ§ˆμ€ 2차원 M × N 격자둜 ν‘œν˜„λ  수 μžˆλ‹€. νŽΈμ˜μƒ 2차원 격자의 μœ„μͺ½μ„ λ°”κΉ₯μͺ½(outer side), μ•„λž˜μͺ½μ„ μ•ˆμͺ½(inner side)라고 μƒκ°ν•˜κΈ°λ‘œ ν•œλ‹€. λ˜ν•œ 각 κ²©μžλŠ” 검은색 μ•„λ‹ˆλ©΄ 흰색인데, 검은색은 μ „λ₯˜λ₯Ό μ°¨λ‹¨ν•˜λŠ” λ¬Όμ§ˆμž„μ„ λœ»ν•˜κ³  흰색은 μ „λ₯˜κ°€ 톡할 수 μžˆλŠ” λ¬Όμ§ˆμž„μ„ λœ»ν•œλ‹€. μ „λ₯˜λŠ” μ„¬μœ  물질의 κ°€μž₯ λ°”κΉ₯μͺ½ 흰색 κ²©μžλ“€μ— κ³΅κΈ‰λ˜κ³ , μ΄ν›„μ—λŠ” μƒν•˜μ’Œμš°λ‘œ μΈμ ‘ν•œ 흰색 κ²©μžλ“€λ‘œ 전달될 수 μžˆλ‹€. κΉ€ κ΅μˆ˜κ°€ κ°œλ°œν•œ μ„¬μœ  λ¬Όμ§ˆμ„ λ‚˜νƒ€λ‚΄λŠ” 정보가 2차원 격자 ν˜•νƒœλ‘œ μ£Όμ–΄μ§ˆ λ•Œ, λ°”κΉ₯μͺ½μ—μ„œ 흘렀 μ€€ μ „λ₯˜κ°€ μ•ˆμͺ½κΉŒμ§€ 침투될 수 μžˆλŠ”μ§€ μ•„λ‹Œμ§€λ₯Ό νŒλ‹¨ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€..
[Algorithm] 점프 점프 (λ°±μ€€ - 11060) πŸ“‹ 문제 μž¬ν™˜μ΄κ°€ 1×N 크기의 λ―Έλ‘œμ— κ°‡ν˜€μžˆλ‹€. λ―Έλ‘œλŠ” 1×1 크기의 칸으둜 이루어져 있고, 각 μΉΈμ—λŠ” μ •μˆ˜κ°€ ν•˜λ‚˜ μ“°μ—¬ μžˆλ‹€. i번째 칸에 μ“°μ—¬ μžˆλŠ” 수λ₯Ό Ai라고 ν–ˆμ„ λ•Œ, μž¬ν™˜μ΄λŠ” Aiμ΄ν•˜λ§ŒνΌ 였λ₯Έμͺ½μœΌλ‘œ λ–¨μ–΄μ§„ 칸으둜 ν•œ λ²ˆμ— 점프할 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄, 3번째 칸에 μ“°μ—¬ μžˆλŠ” μˆ˜κ°€ 3이면, μž¬ν™˜μ΄λŠ” 4, 5, 6번 μΉΈ 쀑 ν•˜λ‚˜λ‘œ 점프할 수 μžˆλ‹€. μž¬ν™˜μ΄λŠ” μ§€κΈˆ 미둜의 κ°€μž₯ μ™Όμͺ½ 끝에 있고, κ°€μž₯ 였λ₯Έμͺ½ 끝으둜 κ°€λ €κ³  ν•œλ‹€. μ΄λ•Œ, μ΅œμ†Œ λͺ‡ 번 점프λ₯Ό ν•΄μ•Ό 갈 수 μžˆλŠ”μ§€ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. λ§Œμ•½, κ°€μž₯ 였λ₯Έμͺ½ 끝으둜 갈 수 μ—†λŠ” κ²½μš°μ—λŠ” -1을 좜λ ₯ν•œλ‹€. μž…λ ₯ 첫째 쀄에 N(1 ≤ N ≤ 1,000)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” Ai (0 ≤ Ai ≤ 100)κ°€ μ£Όμ–΄μ§„λ‹€. 좜λ ₯ μž¬ν™˜μ΄κ°€ ..
[Algorithm] 리λͺ¨μ»¨ (λ°±μ€€ - 1107) πŸ“‹ 문제 μˆ˜λΉˆμ΄λŠ” TVλ₯Ό 보고 μžˆλ‹€. μˆ˜λΉˆμ΄λŠ” 채널을 돌리렀고 ν–ˆμ§€λ§Œ, λ²„νŠΌμ„ λ„ˆλ¬΄ μ„Έκ²Œ λˆ„λ₯΄λŠ” λ°”λžŒμ—, 일뢀 숫자 λ²„νŠΌμ΄ κ³ μž₯났닀. 리λͺ¨μ»¨μ—λŠ” λ²„νŠΌμ΄ 0λΆ€ν„° 9κΉŒμ§€ 숫자, +와 -κ°€ μžˆλ‹€. +λ₯Ό λˆ„λ₯΄λ©΄ ν˜„μž¬ λ³΄κ³ μžˆλŠ” μ±„λ„μ—μ„œ +1된 μ±„λ„λ‘œ μ΄λ™ν•˜κ³ , -λ₯Ό λˆ„λ₯΄λ©΄ -1된 μ±„λ„λ‘œ μ΄λ™ν•œλ‹€. 채널 0μ—μ„œ -λ₯Ό λˆ„λ₯Έ κ²½μš°μ—λŠ” 채널이 λ³€ν•˜μ§€ μ•Šκ³ , 채널은 λ¬΄ν•œλŒ€ 만큼 μžˆλ‹€. μˆ˜λΉˆμ΄κ°€ μ§€κΈˆ μ΄λ™ν•˜λ €κ³  ν•˜λŠ” 채널은 N이닀. μ–΄λ–€ λ²„νŠΌμ΄ κ³ μž₯λ‚¬λŠ”μ§€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 채널 N으둜 μ΄λ™ν•˜κΈ° μœ„ν•΄μ„œ λ²„νŠΌμ„ μ΅œμ†Œ λͺ‡ 번 λˆŒλŸ¬μ•Όν•˜λŠ”μ§€ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μˆ˜λΉˆμ΄κ°€ μ§€κΈˆ 보고 μžˆλŠ” 채널은 100λ²ˆμ΄λ‹€. μž…λ ₯ 첫째 쀄에 μˆ˜λΉˆμ΄κ°€ μ΄λ™ν•˜λ €κ³  ν•˜λŠ” 채널 N (0 ≤ N ≤ 500,000)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” κ³ μž₯λ‚œ λ²„νŠΌμ˜..
[Algorithm] λ±€κ³Ό 사닀리 κ²Œμž„(λ°±μ€€ - 16928) πŸ“‹ 문제 λ±€κ³Ό 사닀리 κ²Œμž„μ„ 즐겨 ν•˜λŠ” νλΈŒλŸ¬λ²„λŠ” μ–΄λŠ λ‚  κΆκΈˆν•œ 점이 생겼닀. μ£Όμ‚¬μœ„λ₯Ό μ‘°μž‘ν•΄ λ‚΄κ°€ μ›ν•˜λŠ” μˆ˜κ°€ λ‚˜μ˜€κ²Œ λ§Œλ“€ 수 μžˆλ‹€λ©΄, μ΅œμ†Œ λͺ‡ λ²ˆλ§Œμ— 도착점에 도착할 수 μžˆμ„κΉŒ? κ²Œμž„μ€ μ •μœ‘λ©΄μ²΄ μ£Όμ‚¬μœ„λ₯Ό μ‚¬μš©ν•˜λ©°, μ£Όμ‚¬μœ„μ˜ 각 λ©΄μ—λŠ” 1λΆ€ν„° 6κΉŒμ§€ μˆ˜κ°€ ν•˜λ‚˜μ”© μ ν˜€μžˆλ‹€. κ²Œμž„μ€ 크기가 10×10이고, 총 100개의 칸으둜 λ‚˜λˆ„μ–΄μ Έ μžˆλŠ” λ³΄λ“œνŒμ—μ„œ μ§„ν–‰λœλ‹€. λ³΄λ“œνŒμ—λŠ” 1λΆ€ν„° 100κΉŒμ§€ μˆ˜κ°€ ν•˜λ‚˜μ”© μˆœμ„œλŒ€λ‘œ μ ν˜€μ Έ μžˆλ‹€. ν”Œλ ˆμ΄μ–΄λŠ” μ£Όμ‚¬μœ„λ₯Ό κ΅΄λ € λ‚˜μ˜¨ 수만큼 이동해야 ν•œλ‹€. 예λ₯Ό λ“€μ–΄, ν”Œλ ˆμ΄μ–΄κ°€ i번 칸에 있고, μ£Όμ‚¬μœ„λ₯Ό κ΅΄λ € λ‚˜μ˜¨ μˆ˜κ°€ 4라면, i+4번 칸으둜 이동해야 ν•œλ‹€. λ§Œμ•½ μ£Όμ‚¬μœ„λ₯Ό κ΅΄λ¦° κ²°κ³Όκ°€ 100번 칸을 λ„˜μ–΄κ°„λ‹€λ©΄ 이동할 수 μ—†λ‹€. λ„μ°©ν•œ 칸이 사닀리면, 사닀리λ₯Ό 타고 μœ„λ‘œ μ˜¬λΌκ°„λ‹€...
[Algorithm] μΏ ν‚€ κ΅¬μž… πŸ“‹ 문제 과자λ₯Ό λ°”κ΅¬λ‹ˆ λ‹¨μœ„λ‘œ νŒŒλŠ” κ°€κ²Œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 κ°€κ²ŒλŠ” 1λ²ˆλΆ€ν„° Nλ²ˆκΉŒμ§€ μ°¨λ‘€λ‘œ λ²ˆν˜Έκ°€ 뢙은 λ°”κ΅¬λ‹ˆ Nκ°œκ°€ 일렬둜 λ‚˜μ—΄ν•΄ λ†¨μŠ΅λ‹ˆλ‹€. μ² μˆ˜λŠ” 두 μ•„λ“€μ—κ²Œ 쀄 과자λ₯Ό μ‚¬λ €ν•©λ‹ˆλ‹€. 첫째 μ•„λ“€μ—κ²ŒλŠ” l번 λ°”κ΅¬λ‹ˆλΆ€ν„° m번 λ°”κ΅¬λ‹ˆκΉŒμ§€, λ‘˜μ§Έ μ•„λ“€μ—κ²ŒλŠ” m+1번 λ°”κ΅¬λ‹ˆλΆ€ν„° r번 λ°”κ΅¬λ‹ˆκΉŒμ§€λ₯Ό μ£Όλ €ν•©λ‹ˆλ‹€. 단, 두 아듀이 받을 과자 μˆ˜λŠ” κ°™μ•„μ•Ό ν•©λ‹ˆλ‹€(1