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

3️⃣ Swift/Problem Solving110

[Swift Algorithm] ATM BOJ #11399 문제 μ„€λͺ… μΈν•˜μ€ν–‰μ—λŠ” ATM이 1λŒ€λ°–μ— μ—†λ‹€. μ§€κΈˆ 이 ATMμ•žμ— Nλͺ…μ˜ μ‚¬λžŒλ“€μ΄ 쀄을 μ„œμžˆλ‹€. μ‚¬λžŒμ€ 1λ²ˆλΆ€ν„° Nλ²ˆκΉŒμ§€ λ²ˆν˜Έκ°€ 맀겨져 있으며, i번 μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ€ Pi뢄이닀. μ‚¬λžŒλ“€μ΄ 쀄을 μ„œλŠ” μˆœμ„œμ— λ”°λΌμ„œ, λˆμ„ μΈμΆœν•˜λŠ”λ° ν•„μš”ν•œ μ‹œκ°„μ˜ 합이 λ‹¬λΌμ§€κ²Œ λœλ‹€. 예λ₯Ό λ“€μ–΄, 총 5λͺ…이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우λ₯Ό μƒκ°ν•΄λ³΄μž. [1, 2, 3, 4, 5] μˆœμ„œλ‘œ 쀄을 μ„ λ‹€λ©΄, 1번 μ‚¬λžŒμ€ 3λΆ„λ§Œμ— λˆμ„ 뽑을 수 μžˆλ‹€. 2번 μ‚¬λžŒμ€ 1번 μ‚¬λžŒμ΄ λˆμ„ 뽑을 λ•Œ κΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•˜κΈ° λ•Œλ¬Έμ—, 3+1 = 4뢄이 걸리게 λœλ‹€. 3번 μ‚¬λžŒμ€ 1번, 2번 μ‚¬λžŒμ΄ λˆμ„ 뽑을 λ•ŒκΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•˜κΈ° λ•Œλ¬Έμ—, 총 3+1+4 = 8뢄이 ν•„μš”ν•˜κ²Œ.. 2021. 8. 18.
[Swift Algorithm] 보물 BOJ #1026 문제 μ„€λͺ… μ˜›λ‚  μ˜›μ μ— μˆ˜ν•™μ΄ 항상 큰 κ³¨μΉ«κ±°λ¦¬μ˜€λ˜ λ‚˜λΌκ°€ μžˆμ—ˆλ‹€. 이 λ‚˜λΌμ˜ κ΅­μ™• 김지민은 λ‹€μŒκ³Ό 같은 문제λ₯Ό λ‚΄κ³  큰 μƒκΈˆμ„ κ±Έμ—ˆλ‹€. 길이가 N인 μ •μˆ˜ λ°°μ—΄ A와 Bκ°€ μžˆλ‹€. λ‹€μŒκ³Ό 같이 ν•¨μˆ˜ Sλ₯Ό μ •μ˜ν•˜μž. S = A[0]×B[0] + ... + A[N-1]×B[N-1] S의 값을 κ°€μž₯ μž‘κ²Œ λ§Œλ“€κΈ° μœ„ν•΄ A의 수λ₯Ό μž¬λ°°μ—΄ν•˜μž. 단, B에 μžˆλŠ” μˆ˜λŠ” μž¬λ°°μ—΄ν•˜λ©΄ μ•ˆ λœλ‹€. S의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…λ ₯ 첫째 쀄에 N이 주어진닀. λ‘˜μ§Έ μ€„μ—λŠ” A에 μžˆλŠ” N개의 μˆ˜κ°€ μˆœμ„œλŒ€λ‘œ 주어지고, μ…‹μ§Έ μ€„μ—λŠ” B에 μžˆλŠ” μˆ˜κ°€ μˆœμ„œλŒ€λ‘œ 주어진닀. N은 50보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄κ³ , A와 B의 각 μ›μ†ŒλŠ” 100보닀 μž‘κ±°λ‚˜ 같은 음이 μ•„λ‹Œ μ •μˆ˜μ΄λ‹€. 좜λ ₯ 첫째 쀄에 S의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•œλ‹€. μž…μΆœλ ₯.. 2021. 8. 18.
[Swift Algorithm] λ‘œν”„ BOJ #2217 문제 μ„€λͺ… N(1 ≤ N ≤ 100,000)개의 λ‘œν”„κ°€ μžˆλ‹€. 이 λ‘œν”„λ₯Ό μ΄μš©ν•˜μ—¬ 이런 μ €λŸ° 물체λ₯Ό λ“€μ–΄μ˜¬λ¦΄ 수 μžˆλ‹€. 각각의 λ‘œν”„λŠ” κ·Έ κ΅΅κΈ°λ‚˜ 길이가 λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— λ“€ 수 μžˆλŠ” 물체의 μ€‘λŸ‰μ΄ μ„œλ‘œ λ‹€λ₯Ό μˆ˜λ„ μžˆλ‹€. ν•˜μ§€λ§Œ μ—¬λŸ¬ 개의 λ‘œν”„λ₯Ό λ³‘λ ¬λ‘œ μ—°κ²°ν•˜λ©΄ 각각의 λ‘œν”„μ— κ±Έλ¦¬λŠ” μ€‘λŸ‰μ„ λ‚˜λˆŒ 수 μžˆλ‹€. k개의 λ‘œν”„λ₯Ό μ‚¬μš©ν•˜μ—¬ μ€‘λŸ‰μ΄ w인 물체λ₯Ό λ“€μ–΄μ˜¬λ¦΄ λ•Œ, 각각의 λ‘œν”„μ—λŠ” λͺ¨λ‘ κ³ λ₯΄κ²Œ w/k 만큼의 μ€‘λŸ‰μ΄ 걸리게 λœλ‹€. 각 λ‘œν”„λ“€μ— λŒ€ν•œ 정보가 μ£Όμ–΄μ‘Œμ„ λ•Œ, 이 λ‘œν”„λ“€μ„ μ΄μš©ν•˜μ—¬ λ“€μ–΄μ˜¬λ¦΄ 수 μžˆλŠ” 물체의 μ΅œλŒ€ μ€‘λŸ‰μ„ κ΅¬ν•΄λ‚΄λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. λͺ¨λ“  λ‘œν”„λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•  ν•„μš”λŠ” μ—†μœΌλ©°, μž„μ˜λ‘œ λͺ‡ 개의 λ‘œν”„λ₯Ό κ³¨λΌμ„œ μ‚¬μš©ν•΄λ„ λœλ‹€. μž…λ ₯ 첫째 쀄에 μ •μˆ˜ N이 주어진닀. λ‹€μŒ N개의 μ€„μ—λŠ” 각 λ‘œν”„κ°€ 버.. 2021. 8. 18.
[Swift Algorithm] νšŒμ˜μ‹€ λ°°μ • BOJ #1931 문제 μ„€λͺ… ν•œ 개의 νšŒμ˜μ‹€μ΄ μžˆλŠ”λ° 이λ₯Ό μ‚¬μš©ν•˜κ³ μž ν•˜λŠ” N개의 νšŒμ˜μ— λŒ€ν•˜μ—¬ νšŒμ˜μ‹€ μ‚¬μš©ν‘œλ₯Ό λ§Œλ“€λ €κ³  ν•œλ‹€. 각 회의 I에 λŒ€ν•΄ μ‹œμž‘μ‹œκ°„κ³Ό λλ‚˜λŠ” μ‹œκ°„μ΄ μ£Όμ–΄μ Έ 있고, 각 νšŒμ˜κ°€ κ²ΉμΉ˜μ§€ μ•Šκ²Œ ν•˜λ©΄μ„œ νšŒμ˜μ‹€μ„ μ‚¬μš©ν•  수 μžˆλŠ” 회의의 μ΅œλŒ€ 개수λ₯Ό μ°Ύμ•„λ³΄μž. 단, νšŒμ˜λŠ” ν•œλ²ˆ μ‹œμž‘ν•˜λ©΄ 쀑간에 쀑단될 수 μ—†μœΌλ©° ν•œ νšŒμ˜κ°€ λλ‚˜λŠ” 것과 λ™μ‹œμ— λ‹€μŒ νšŒμ˜κ°€ μ‹œμž‘λ  수 μžˆλ‹€. 회의의 μ‹œμž‘μ‹œκ°„κ³Ό λλ‚˜λŠ” μ‹œκ°„μ΄ 같을 μˆ˜λ„ μžˆλ‹€. 이 κ²½μš°μ—λŠ” μ‹œμž‘ν•˜μžλ§ˆμž λλ‚˜λŠ” κ²ƒμœΌλ‘œ μƒκ°ν•˜λ©΄ λœλ‹€. μž…λ ₯ 첫째 쀄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진닀. λ‘˜μ§Έ 쀄뢀터 N+1 μ€„κΉŒμ§€ 각 회의의 정보가 μ£Όμ–΄μ§€λŠ”λ° 이것은 곡백을 사이에 두고 회의의 μ‹œμž‘μ‹œκ°„κ³Ό λλ‚˜λŠ” μ‹œκ°„μ΄ 주어진닀. μ‹œμž‘ μ‹œκ°„κ³Ό λλ‚˜λŠ” μ‹œκ°„μ€ 231-1보닀.. 2021. 8. 18.
[Swift Algorithm] 동전 0 BOJ #11047 문제 μ„€λͺ… μ€€κ·œκ°€ 가지고 μžˆλŠ” 동전은 총 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원을 λ§Œλ“œλŠ”λ° ν•„μš”ν•œ 동전 개수의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•œλ‹€. μž…μΆœλ ₯ 예 μž…λ ₯ 10 4200 1 5 10 50 100 500 1000 5000 10000 50000 좜λ ₯ 6 λ‚΄ 문제 풀이 import Foundation l.. 2021. 8. 13.