λͺ©λ‘μ½”λ”©ν…ŒμŠ€νŠΈ μ€€λΉ„ (86)

𝘚𝘭𝘰𝘸 𝘣𝘢𝘡 𝘴𝘡𝘦𝘒π˜₯𝘺

[λ°±μ€€] 1904: 01타일 - C++

문제 μ§€μ›μ΄μ—κ²Œ 2진 μˆ˜μ—΄μ„ κ°€λ₯΄μ³ μ£ΌκΈ° μœ„ν•΄, 지원이 μ•„λ²„μ§€λŠ” κ·Έμ—κ²Œ 타일듀을 μ„ λ¬Όν•΄μ£Όμ…¨λ‹€. 그리고 이 각각의 타일듀은 0 λ˜λŠ” 1이 μ“°μ—¬ μžˆλŠ” λ‚±μž₯의 타일듀이닀. μ–΄λŠ λ‚  짓ꢂ은 동주가 μ§€μ›μ΄μ˜ 곡뢀λ₯Ό λ°©ν•΄ν•˜κΈ° μœ„ν•΄ 0이 쓰여진 λ‚±μž₯의 타일듀을 λΆ™μ—¬μ„œ ν•œ 쌍으둜 이루어진 00 타일듀을 λ§Œλ“€μ—ˆλ‹€. κ²°κ΅­ ν˜„μž¬ 1 ν•˜λ‚˜λ§ŒμœΌλ‘œ 이루어진 타일 λ˜λŠ” 0타일을 두 개 뢙인 ν•œ 쌍의 00νƒ€μΌλ“€λ§Œμ΄ λ‚¨κ²Œ λ˜μ—ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ μ§€μ›μ΄λŠ” νƒ€μΌλ‘œ 더 이상 크기가 N인 λͺ¨λ“  2진 μˆ˜μ—΄μ„ λ§Œλ“€ 수 μ—†κ²Œ λ˜μ—ˆλ‹€. 예λ₯Ό λ“€μ–΄, N=1일 λ•Œ 1만 λ§Œλ“€ 수 있고, N=2일 λ•ŒλŠ” 00, 11을 λ§Œλ“€ 수 μžˆλ‹€. (01, 10은 λ§Œλ“€ 수 μ—†κ²Œ λ˜μ—ˆλ‹€.) λ˜ν•œ N=4일 λ•ŒλŠ” 0011, 0000, 1001, 1100, 1111 λ“± 총 5개의 2..

[λ°±μ€€] 2240번: μžλ‘λ‚˜λ¬΄ - C++

문제 μžλ‘λŠ” μžλ‘λ₯Ό μ’‹μ•„ν•œλ‹€. κ·Έλž˜μ„œ 집에 μžλ‘λ‚˜λ¬΄λ₯Ό 심어두고, μ—¬κΈ°μ„œ μ—΄λ¦¬λŠ” μžλ‘λ₯Ό λ¨Ήκ³ λŠ” ν•œλ‹€. ν•˜μ§€λ§Œ μžλ‘λŠ” ν‚€κ°€ μž‘μ•„μ„œ μžλ‘λ₯Ό λ”°λ¨Ήμ§€λŠ” λͺ»ν•˜κ³ , μžλ‘κ°€ λ–¨μ–΄μ§ˆ λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦° λ‹€μŒμ— λ–¨μ–΄μ§€λŠ” μžλ‘λ₯Ό λ°›μ•„μ„œ λ¨Ήκ³ λŠ” ν•œλ‹€. μžλ‘λ₯Ό μž‘μ„ λ•Œμ—λŠ” μžλ‘κ°€ ν—ˆκ³΅μ— μžˆμ„ λ•Œ μž‘μ•„μ•Ό ν•˜λŠ”λ°, μ΄λŠ” μžλ‘κ°€ λ§λž‘λ§λž‘ν•˜μ—¬ λ°”λ‹₯에 떨어지면 λͺ» 먹을 μ •λ„λ‘œ λ­‰κ°œμ§€κΈ° λ•Œλ¬Έμ΄λ‹€. 맀 μ΄ˆλ§ˆλ‹€, 두 개의 λ‚˜λ¬΄ 쀑 ν•˜λ‚˜μ˜ λ‚˜λ¬΄μ—μ„œ 열맀가 λ–¨μ–΄μ§€κ²Œ λœλ‹€. λ§Œμ•½ 열맀가 λ–¨μ–΄μ§€λŠ” μˆœκ°„, μžλ‘κ°€ κ·Έ λ‚˜λ¬΄μ˜ μ•„λž˜μ— μ„œ 있으면 μžλ‘λŠ” κ·Έ 열맀λ₯Ό 받아먹을 수 μžˆλ‹€. 두 개의 λ‚˜λ¬΄λŠ” 그닀지 멀리 λ–¨μ–΄μ Έ μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, μžλ‘λŠ” ν•˜λ‚˜μ˜ λ‚˜λ¬΄ μ•„λž˜μ— μ„œ μžˆλ‹€κ°€ λ‹€λ₯Έ λ‚˜λ¬΄ μ•„λž˜λ‘œ λΉ λ₯΄κ²Œ(1μ΄ˆλ³΄λ‹€ 훨씬 짧은 μ‹œκ°„μ—) 움직일 수 μžˆλ‹€. ν•˜μ§€λ§Œ μžλ‘λŠ” ..

[λ°±μ€€] 11047: 동전 0 - C++

문제 μ€€κ·œκ°€ 가지고 μžˆλŠ” 동전은 총 Nμ’…λ₯˜μ΄κ³ , 각각의 동전을 맀우 많이 가지고 μžˆλ‹€. 동전을 적절히 μ‚¬μš©ν•΄μ„œ κ·Έ κ°€μΉ˜μ˜ 합을 K둜 λ§Œλ“€λ €κ³  ν•œλ‹€. μ΄λ•Œ ν•„μš”ν•œ 동전 개수의 μ΅œμ†Ÿκ°’μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…λ ₯ 첫째 쀄에 Nκ³Ό Kκ°€ 주어진닀. (1 ≀ N ≀ 10, 1 ≀ K ≀ 100,000,000) λ‘˜μ§Έ 쀄뢀터 N개의 쀄에 λ™μ „μ˜ κ°€μΉ˜ Aiκ°€ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ 주어진닀. (1 ≀ Ai ≀ 1,000,000, A1 = 1, i β‰₯ 2인 κ²½μš°μ— AiλŠ” Ai-1의 배수) 좜λ ₯ 첫째 쀄에 K원을 λ§Œλ“œλŠ”λ° ν•„μš”ν•œ 동전 개수의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•œλ‹€. 그리디 μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•œ 문제. κ°€μž₯ λ‹¨μˆœν•˜κ²Œ 거꾸둜 κ°€μž₯ 큰 κ°€μΉ˜λ₯Ό 가진 κΈˆμ•‘λΆ€ν„° μƒκ°ν•˜μ—¬ K에 맞게 λΉΌλ‚˜κ°€λ©΄ λœλ‹€. μ½”λ“œ #include #define MAX 1..

[λ°±μ€€] 15988번: 1, 2, 3 λ”ν•˜κΈ° 3 - C++

문제 μ •μˆ˜ 4λ₯Ό 1, 2, 3의 ν•©μœΌλ‘œ λ‚˜νƒ€λ‚΄λŠ” 방법은 총 7가지가 μžˆλ‹€. 합을 λ‚˜νƒ€λ‚Ό λ•ŒλŠ” 수λ₯Ό 1개 이상 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 μ •μˆ˜ n이 μ£Όμ–΄μ‘Œμ„ λ•Œ, n을 1, 2, 3의 ν•©μœΌλ‘œ λ‚˜νƒ€λ‚΄λŠ” λ°©λ²•μ˜ 수λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…λ ₯ 첫째 쀄에 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 개수 Tκ°€ 주어진닀. 각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” ν•œ μ€„λ‘œ 이루어져 있고, μ •μˆ˜ n이 주어진닀. n은 μ–‘μˆ˜μ΄λ©° 1,000,000보닀 μž‘κ±°λ‚˜ κ°™λ‹€. 좜λ ₯ 각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ§ˆλ‹€, n을 1, 2, 3의 ν•©μœΌλ‘œ λ‚˜νƒ€λ‚΄λŠ” λ°©λ²•μ˜ 수λ₯Ό 1,000,000,009둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό 좜λ ₯ν•œλ‹€. λ™μ κ³„νšλ²•μ„ μ‚¬μš©ν•˜μ—¬ ν‘ΈλŠ” 문제 πŸ”— 9095번: 1, 2, 3 λ”ν•˜κΈ° 와 λ™μΌν•œ λ¬Έμ œμ΄λ‹€. λ‹€λ§Œ μ •μˆ˜ n의 λ²”μœ„κ°€..

[λ°±μ€€] 15486번: 퇴사 2 - C++

문제 μƒλ‹΄μ›μœΌλ‘œ μΌν•˜κ³  μžˆλŠ” λ°±μ€€μ΄λŠ” 퇴사λ₯Ό ν•˜λ €κ³  ν•œλ‹€. μ˜€λŠ˜λΆ€ν„° N+1일째 λ˜λŠ” λ‚  퇴사λ₯Ό ν•˜κΈ° μœ„ν•΄μ„œ, 남은 N일 λ™μ•ˆ μ΅œλŒ€ν•œ λ§Žμ€ 상담을 ν•˜λ €κ³  ν•œλ‹€. λ°±μ€€μ΄λŠ” λΉ„μ„œμ—κ²Œ μ΅œλŒ€ν•œ λ§Žμ€ 상담을 작으라고 뢀탁을 ν–ˆκ³ , λΉ„μ„œλŠ” ν•˜λ£¨μ— ν•˜λ‚˜μ”© μ„œλ‘œ λ‹€λ₯Έ μ‚¬λžŒμ˜ 상담을 μž‘μ•„λ†“μ•˜λ‹€. 각각의 상담은 상담을 μ™„λ£Œν•˜λŠ”λ° κ±Έλ¦¬λŠ” κΈ°κ°„ Ti와 상담을 ν–ˆμ„ λ•Œ 받을 수 μžˆλŠ” κΈˆμ•‘ Pi둜 이루어져 μžˆλ‹€. N = 7인 κ²½μš°μ— λ‹€μŒκ³Ό 같은 상담 μΌμ •ν‘œλ₯Ό 보자. 1일 2일 3일 4일 5일 6일 7일 Ti 3 5 1 1 2 4 2 Pi 10 20 10 20 15 40 200 1일에 μž‘ν˜€μžˆλŠ” 상담은 총 3일이 걸리며, μƒλ‹΄ν–ˆμ„ λ•Œ 받을 수 μžˆλŠ” κΈˆμ•‘μ€ 10이닀. 5일에 μž‘ν˜€μžˆλŠ” 상담은 총 2일이 걸리며, 받을 수 μžˆλŠ” κΈˆμ•‘μ€ 15..

[λ°±μ€€] 12852번: 1둜 λ§Œλ“€κΈ° 2 - C++

문제 μ •μˆ˜ X에 μ‚¬μš©ν•  수 μžˆλŠ” 연산은 λ‹€μŒκ³Ό 같이 μ„Έ 가지 이닀. Xκ°€ 3으둜 λ‚˜λˆ„μ–΄ 떨어지면, 3으둜 λ‚˜λˆˆλ‹€. Xκ°€ 2둜 λ‚˜λˆ„μ–΄ 떨어지면, 2둜 λ‚˜λˆˆλ‹€. 1을 λΊ€λ‹€. μ •μˆ˜ N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, μœ„μ™€ 같은 μ—°μ‚° μ„Έ 개λ₯Ό 적절히 μ‚¬μš©ν•΄μ„œ 1을 λ§Œλ“€λ €κ³  ν•œλ‹€. 연산을 μ‚¬μš©ν•˜λŠ” 횟수의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•˜μ‹œμ˜€. μž…λ ₯ 첫째 쀄에 1보닀 ν¬κ±°λ‚˜ κ°™κ³ , 106보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜ N이 주어진닀. 좜λ ₯ 첫째 쀄에 연산을 ν•˜λŠ” 횟수의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•œλ‹€. λ‘˜μ§Έ μ€„μ—λŠ” N을 1둜 λ§Œλ“œλŠ” 방법에 ν¬ν•¨λ˜μ–΄ μžˆλŠ” 수λ₯Ό 곡백으둜 κ΅¬λΆ„ν•΄μ„œ μˆœμ„œλŒ€λ‘œ 좜λ ₯ν•œλ‹€. 정닡이 μ—¬λŸ¬ 가지인 κ²½μš°μ—λŠ” μ•„λ¬΄κ±°λ‚˜ 좜λ ₯ν•œλ‹€. λ™μ κ³„νšλ²•μ„ μ‚¬μš©ν•˜μ—¬ ν’€ 수 μžˆλŠ” 문제. πŸ”— 1463번: 1둜 λ§Œλ“€κΈ° - C++ μ•žλΆ€λΆ„μ΄ λ™μΌν•œ 문제이기 λ•Œλ¬Έμ— 초기 μ ‘κ·Ό 방식..

[λ°±μ€€] 1149번: RGB거리 - C++

문제 RGBκ±°λ¦¬μ—λŠ” 집이 N개 μžˆλ‹€. κ±°λ¦¬λŠ” μ„ λΆ„μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 있고, 1번 집뢀터 N번 집이 μˆœμ„œλŒ€λ‘œ μžˆλ‹€. 집은 λΉ¨κ°•, 초둝, νŒŒλž‘ 쀑 ν•˜λ‚˜μ˜ μƒ‰μœΌλ‘œ μΉ ν•΄μ•Ό ν•œλ‹€. 각각의 집을 λΉ¨κ°•, 초둝, νŒŒλž‘μœΌλ‘œ μΉ ν•˜λŠ” λΉ„μš©μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, μ•„λž˜ κ·œμΉ™μ„ λ§Œμ‘±ν•˜λ©΄μ„œ λͺ¨λ“  집을 μΉ ν•˜λŠ” λΉ„μš©μ˜ μ΅œμ†Ÿκ°’μ„ κ΅¬ν•΄λ³΄μž. 1번 μ§‘μ˜ 색은 2번 μ§‘μ˜ 색과 같지 μ•Šμ•„μ•Ό ν•œλ‹€. N번 μ§‘μ˜ 색은 N-1번 μ§‘μ˜ 색과 같지 μ•Šμ•„μ•Ό ν•œλ‹€. i(2 ≀ i ≀ N-1)번 μ§‘μ˜ 색은 i-1번, i+1번 μ§‘μ˜ 색과 같지 μ•Šμ•„μ•Ό ν•œλ‹€. μž…λ ₯ 첫째 쀄에 μ§‘μ˜ 수 N(2 ≀ N ≀ 1,000)이 주어진닀. λ‘˜μ§Έ 쀄뢀터 N개의 μ€„μ—λŠ” 각 집을 λΉ¨κ°•, 초둝, νŒŒλž‘μœΌλ‘œ μΉ ν•˜λŠ” λΉ„μš©μ΄ 1번 집뢀터 ν•œ 쀄에 ν•˜λ‚˜μ”© 주어진닀. 집을 μΉ ν•˜λŠ” λΉ„μš©μ€ 1,000보닀 ..

[λ°±μ€€] 1024번: μˆ˜μ—΄μ˜ ν•© - C++

문제 Nκ³Ό L이 μ£Όμ–΄μ§ˆ λ•Œ, 합이 Nμ΄λ©΄μ„œ, 길이가 적어도 L인 κ°€μž₯ 짧은 μ—°μ†λœ 음이 μ•„λ‹Œ μ •μˆ˜ 리슀트λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…λ ₯ 첫째 쀄에 Nκ³Ό L이 주어진닀. N은 1,000,000,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄κ³ , L은 2보닀 ν¬κ±°λ‚˜ κ°™κ³ , 100보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€. 좜λ ₯ λ§Œμ•½ 리슀트의 길이가 100보닀 μž‘κ±°λ‚˜ κ°™μœΌλ©΄, μ—°μ†λœ 수λ₯Ό 첫째 쀄에 곡백으둜 κ΅¬λΆ„ν•˜μ—¬ 좜λ ₯ν•œλ‹€. λ§Œμ•½ 길이가 100보닀 ν¬κ±°λ‚˜ κ·ΈλŸ¬ν•œ μˆ˜μ—΄μ΄ 없을 λ•ŒλŠ” -1을 좜λ ₯ν•œλ‹€. μ½”λ“œμ μΈ μŠ€ν‚¬λ³΄λ‹€ μˆ˜ν•™μ μΈ μˆ˜μ‹μ„ μ’€ 더 μƒκ°ν•΄λ΄€μ—ˆμ–΄μ•Ό ν•˜λŠ” 문제.. μ²˜μŒμ— λ‹€λ“€ ν•˜λ“― 홀/짝수둜 λ‚˜λˆ μ„œ 생각을 ν•΄λ΄€λŠ”λ° 짝수인 κ²½μš°μ— 접근을 λͺ»ν•˜κ² μ–΄μ„œ μ°Ύμ•„λ΄€λ”λ‹ˆ μˆ˜μ‹μœΌλ‘œ μƒκ°ν•΄λ΄μ•Όν–ˆλ‹€. L 길이만큼 μ—°μ†λœ 수둜 κ΅¬μ„±λœ μˆ˜μ—΄μ˜ 합이 N..

[λ°±μ€€] 1788번: ν”Όλ³΄λ‚˜μΉ˜ 수의 ν™•μž₯ - C++

문제 μˆ˜ν•™μ—μ„œ, ν”Όλ³΄λ‚˜μΉ˜ μˆ˜λŠ” μœ„μ˜ 점화식과 같이 κ·€λ‚©μ μœΌλ‘œ μ •μ˜λ˜λŠ” μˆ˜μ—΄μ΄λ‹€. μœ„μ˜ μ‹μ—μ„œλ„ μ•Œ 수 μžˆλ“―μ΄, ν”Όλ³΄λ‚˜μΉ˜ 수 F(n)은 0 μ΄μƒμ˜ n에 λŒ€ν•΄μ„œλ§Œ μ •μ˜λœλ‹€. ν•˜μ§€λ§Œ ν”Όλ³΄λ‚˜μΉ˜ 수 F(n)을 n이 음수인 κ²½μš°λ‘œλ„ ν™•μž₯μ‹œν‚¬ 수 μžˆλ‹€. μœ„μ˜ μ‹μ—μ„œ n > 1인 κ²½μš°μ—λ§Œ μ„±λ¦½ν•˜λŠ” F(n) = F(n-1) + F(n-2)λ₯Ό n ≀ 1일 λ•Œλ„ μ„±λ¦½λ˜λ„λ‘ μ •μ˜ν•˜λŠ” 것이닀. 예λ₯Ό λ“€μ–΄ n = 1일 λ•Œ F(1) = F(0) + F(-1)이 μ„±λ¦½λ˜μ–΄μ•Ό ν•˜λ―€λ‘œ, F(-1)은 1이 λ˜μ–΄μ•Ό ν•œλ‹€. n이 μ£Όμ–΄μ‘Œμ„ λ•Œ, ν”Όλ³΄λ‚˜μΉ˜ 수 F(n)을 κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. n은 음수둜 μ£Όμ–΄μ§ˆ μˆ˜λ„ μžˆλ‹€. μž…λ ₯ 첫째 쀄에 n이 주어진닀. n은 μ ˆλŒ“κ°’μ΄ 1,000,000을 λ„˜μ§€ μ•ŠλŠ” μ •μˆ˜μ΄λ‹€. 좜λ ₯ 첫째 쀄에 F(n)이 μ–‘..