728x90
λ°˜μ‘ν˜•

Python 42

[λ°±μ€€] 12015 κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄ 2 (파이썬)

κ³¨λ“œ β…‘ https://www.acmicpc.net/problem/12015 12015번: κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄ 2 첫째 쀄에 μˆ˜μ—΄ A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진닀. λ‘˜μ§Έ μ€„μ—λŠ” μˆ˜μ—΄ Aλ₯Ό 이루고 μžˆλŠ” Aiκ°€ 주어진닀. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net πŸ“„ 문제 μˆ˜μ—΄ Aκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μˆ˜μ—΄ A의 ν¬κΈ°λŠ” N (1 ≤ N ≤ 1,000,000)이닀. 예λ₯Ό λ“€μ–΄, μˆ˜μ—΄ A = {10, 20, 10, 30, 20, 50}인 κ²½μš°μ— κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄μ€ A = {10, 20, 10, 30, 20, 50}이고, κΈΈμ΄λŠ” 4이닀. πŸ’‘ 아이디어 졜μž₯ 증가 λΆ€λΆ„ μˆ˜μ—΄(LIS, Long..

[λ°±μ€€] 2470 두 μš©μ•‘ (파이썬)

κ³¨λ“œ β…€ https://www.acmicpc.net/problem/2470 2470번: 두 μš©μ•‘ 첫째 μ€„μ—λŠ” 전체 μš©μ•‘μ˜ 수 N이 μž…λ ₯λœλ‹€. N은 2 이상 100,000 μ΄ν•˜μ΄λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” μš©μ•‘μ˜ νŠΉμ„±κ°’μ„ λ‚˜νƒ€λ‚΄λŠ” N개의 μ •μˆ˜κ°€ λΉˆμΉΈμ„ 사이에 두고 주어진닀. 이 μˆ˜λ“€μ€ λͺ¨λ‘ -1,000,000,000 이상 1,000,00 www.acmicpc.net πŸ“„ 문제 KOI λΆ€μ„€ κ³Όν•™μ—°κ΅¬μ†Œμ—μ„œλŠ” λ§Žμ€ μ’…λ₯˜μ˜ μ‚°μ„± μš©μ•‘κ³Ό μ•ŒμΉΌλ¦¬μ„± μš©μ•‘μ„ λ³΄μœ ν•˜κ³  μžˆλ‹€. μ‚°μ„± μš©μ•‘μ˜ νŠΉμ„±κ°’μ€ 1λΆ€ν„° 1,000,000,000κΉŒμ§€μ˜ μ–‘μ˜ μ •μˆ˜λ‘œ λ‚˜νƒ€λ‚΄κ³ , μ•ŒμΉΌλ¦¬μ„± μš©μ•‘μ˜ νŠΉμ„±κ°’μ€ -1λΆ€ν„° -1,000,000,000κΉŒμ§€μ˜ 음의 μ •μˆ˜λ‘œ λ‚˜νƒ€λ‚Έλ‹€. 같은 μ–‘μ˜ 두 μš©μ•‘μ„ ν˜Όν•©ν•œ μš©μ•‘μ˜ νŠΉμ„±κ°’μ€ ν˜Όν•©μ— μ‚¬μš©λœ 각 μš©μ•‘μ˜ νŠΉμ„±κ°’μ˜ ν•©μœΌλ‘œ μ •μ˜..

[λ°±μ€€] 2146 닀리 λ§Œλ“€κΈ° (파이썬)

κ³¨λ“œ β…’ https://www.acmicpc.net/problem/2146 2146번: 닀리 λ§Œλ“€κΈ° μ—¬λŸ¬ μ„¬μœΌλ‘œ 이루어진 λ‚˜λΌκ°€ μžˆλ‹€. 이 λ‚˜λΌμ˜ λŒ€ν†΅λ Ήμ€ 섬을 μž‡λŠ” 닀리λ₯Ό λ§Œλ“€κ² λ‹€λŠ” κ³΅μ•½μœΌλ‘œ 인기λͺ°μ΄λ₯Ό ν•΄ 당선될 수 μžˆμ—ˆλ‹€. ν•˜μ§€λ§Œ 막상 λŒ€ν†΅λ Ήμ— μ·¨μž„ν•˜μž, 닀리λ₯Ό λ†“λŠ”λ‹€λŠ” 것이 아깝닀 www.acmicpc.net πŸ“„ 문제 μ—¬λŸ¬ μ„¬μœΌλ‘œ 이루어진 λ‚˜λΌκ°€ μžˆλ‹€. 이 λ‚˜λΌμ˜ λŒ€ν†΅λ Ήμ€ 섬을 μž‡λŠ” 닀리λ₯Ό λ§Œλ“€κ² λ‹€λŠ” κ³΅μ•½μœΌλ‘œ 인기λͺ°μ΄λ₯Ό ν•΄ 당선될 수 μžˆμ—ˆλ‹€. ν•˜μ§€λ§Œ, μƒμƒ‰λ‚΄λŠ” μ‹μœΌλ‘œ ν•œ 섬과 λ‹€λ₯Έ 섬을 μž‡λŠ” 닀리 ν•˜λ‚˜λ§Œμ„ λ§Œλ“€κΈ°λ‘œ ν•˜μ˜€κ³ , κ·Έ λ˜ν•œ 닀리λ₯Ό κ°€μž₯ 짧게 ν•˜μ—¬ λˆμ„ 아끼렀 ν•˜μ˜€λ‹€. κ°€μž₯ 짧은 λ‹€λ¦¬λž€, 닀리가 κ²©μžμ—μ„œ μ°¨μ§€ν•˜λŠ” 칸의 μˆ˜κ°€ κ°€μž₯ 적은 닀리λ₯Ό λ§ν•œλ‹€. 지도가 μ£Όμ–΄μ§ˆ λ•Œ, κ°€μž₯ 짧은 닀리 ν•˜λ‚˜λ₯Ό..

[λ°±μ€€] 14890 κ²½μ‚¬λ‘œ (파이썬)

κ³¨λ“œ β…’ https://www.acmicpc.net/problem/14890 14890번: κ²½μ‚¬λ‘œ 첫째 쀄에 N (2 ≤ N ≤ 100)κ³Ό L (1 ≤ L ≤ N)이 주어진닀. λ‘˜μ§Έ 쀄뢀터 N개의 쀄에 지도가 주어진닀. 각 칸의 λ†’μ΄λŠ” 10보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€. www.acmicpc.net πŸ“„ 문제 크기가 N×N인 지도가 μžˆλ‹€. μ§€λ„μ˜ 각 μΉΈμ—λŠ” 그곳의 높이가 μ ν˜€ μžˆλ‹€. μ˜€λŠ˜μ€ 이 μ§€λ„μ—μ„œ μ§€λ‚˜κ°ˆ 수 μžˆλŠ” 길이 λͺ‡ 개 μžˆλŠ”μ§€ μ•Œμ•„λ³΄λ €κ³  ν•œλ‹€. κΈΈμ΄λž€ ν•œ ν–‰ λ˜λŠ” ν•œ μ—΄ μ „λΆ€λ₯Ό λ‚˜νƒ€λ‚΄λ©°, ν•œμͺ½ λμ—μ„œ λ‹€λ₯Έ μͺ½ λκΉŒμ§€ μ§€λ‚˜κ°€λŠ” 것이닀. 길을 μ§€λ‚˜κ°ˆ 수 있으렀면 길에 μ†ν•œ λͺ¨λ“  칸의 높이가 λͺ¨λ‘ κ°™μ•„μ•Ό ν•œλ‹€. λ˜λŠ”, κ²½μ‚¬λ‘œλ₯Ό λ†“μ•„μ„œ μ§€λ‚˜κ°ˆ 수 μžˆλŠ” 길을 λ§Œλ“€ 수 μžˆλ‹€. κ²½μ‚¬λ‘œλŠ” 높이가 항상 1이며, ..

[μ•Œκ³ λ¦¬μ¦˜] μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체 (μ†Œμˆ˜ νŒλ³„)

μ†Œμˆ˜ (Prime Number) 1보닀 큰 μžμ—°μˆ˜ μ€‘μ—μ„œ 1κ³Ό 자기 μžμ‹ μ„ μ œμ™Έν•œ μžμ—°μˆ˜λ‘œλŠ” λ‚˜λˆ„μ–΄ 떨어지지 μ•ŠλŠ” μžμ—°μˆ˜ 6은 1, 2, 3, 6으둜 λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λ―€λ‘œ μ†Œμˆ˜κ°€ μ•„λ‹ˆλ‹€. 7은 1κ³Ό 7을 μ œμ™Έν•˜κ³ λŠ” λ‚˜λˆ„μ–΄ 떨어지지 μ•ŠμœΌλ―€λ‘œ μ†Œμˆ˜μ΄λ‹€. μ†Œμˆ˜μ˜ νŒλ³„: 기본적인 μ•Œκ³ λ¦¬μ¦˜ 1. 기본적인 μ•Œκ³ λ¦¬μ¦˜ μ†ŒμŠ€ μ½”λ“œ- 파이썬 (Python) # μ†Œμˆ˜ νŒλ³„ ν•¨μˆ˜ (2μ΄μƒμ˜ μžμ—°μˆ˜μ— λŒ€ν•˜μ—¬) def is_prime_number(x): # 2λΆ€ν„° (x - 1)κΉŒμ§€μ˜ λͺ¨λ“  수λ₯Ό ν™•μΈν•˜λ©° for i in range(2, x): # xκ°€ ν•΄λ‹Ή 수둜 λ‚˜λˆ„μ–΄ 떨어진닀면 if x % i == 0: return False # μ†Œμˆ˜κ°€ μ•„λ‹ˆλ‹€. # λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λŠ” μˆ˜κ°€ ν•˜λ‚˜λ„ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ return True # μ†Œμˆ˜μ΄λ‹€. ..

Algorithm 2023.08.25

[λ°±μ€€] 1644 μ†Œμˆ˜μ˜ 연속합 (파이썬)

κ³¨λ“œ β…’ https://www.acmicpc.net/problem/1644 1644번: μ†Œμˆ˜μ˜ 연속합 첫째 쀄에 μžμ—°μˆ˜ N이 주어진닀. (1 ≤ N ≤ 4,000,000) www.acmicpc.net πŸ“„ 문제 ν•˜λ‚˜ μ΄μƒμ˜ μ—°μ†λœ μ†Œμˆ˜μ˜ ν•©μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλŠ” μžμ—°μˆ˜λ“€μ΄ μžˆλ‹€. λͺ‡ 가지 μžμ—°μˆ˜μ˜ 예λ₯Ό λ“€μ–΄ 보면 λ‹€μŒκ³Ό κ°™λ‹€. 3 : 3 (ν•œ 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (μ„Έ 가지) 53 : 5+7+11+13+17 = 53 (두 가지) ν•˜μ§€λ§Œ μ—°μ†λœ μ†Œμˆ˜μ˜ ν•©μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μ—†λŠ” μžμ—°μˆ˜λ“€λ„ μžˆλŠ”λ°, 20이 κ·Έ μ˜ˆμ΄λ‹€. 7+13을 κ³„μ‚°ν•˜λ©΄ 20이 λ˜κΈ°λŠ” ν•˜λ‚˜ 7κ³Ό 13이 연속이 μ•„λ‹ˆκΈ°μ— μ ν•©ν•œ ν‘œν˜„μ΄ μ•„λ‹ˆλ‹€. λ˜ν•œ ν•œ μ†Œμˆ˜λŠ” λ°˜λ“œμ‹œ ν•œ 번만 λ§μ…ˆμ— μ‚¬μš©λ  수 있기 λ•Œλ¬Έ..

[λ°±μ€€] 2138 전ꡬ와 μŠ€μœ„μΉ˜ (파이썬)

κ³¨λ“œ β…€ https://www.acmicpc.net/problem/2138 2138번: 전ꡬ와 μŠ€μœ„μΉ˜ N개의 μŠ€μœ„μΉ˜μ™€ N개의 전ꡬ가 μžˆλ‹€. 각각의 μ „κ΅¬λŠ” 켜져 μžˆλŠ” μƒνƒœμ™€ κΊΌμ Έ μžˆλŠ” μƒνƒœ 쀑 ν•˜λ‚˜μ˜ μƒνƒœλ₯Ό 가진닀. i(1 < i < N)번 μŠ€μœ„μΉ˜λ₯Ό λˆ„λ₯΄λ©΄ i-1, i, i+1의 μ„Έ 개의 μ „κ΅¬μ˜ μƒνƒœκ°€ 바뀐닀. 즉, κΊΌμ Έ www.acmicpc.net πŸ“„ 문제 N개의 μŠ€μœ„μΉ˜μ™€ N개의 전ꡬ가 μžˆλ‹€. 각각의 μ „κ΅¬λŠ” 켜져 μžˆλŠ” μƒνƒœμ™€ κΊΌμ Έ μžˆλŠ” μƒνƒœ 쀑 ν•˜λ‚˜μ˜ μƒνƒœλ₯Ό 가진닀. i(1 < i < N)번 μŠ€μœ„μΉ˜λ₯Ό λˆ„λ₯΄λ©΄ i-1, i, i+1의 μ„Έ 개의 μ „κ΅¬μ˜ μƒνƒœκ°€ 바뀐닀. 즉, κΊΌμ Έ μžˆλŠ” μ „κ΅¬λŠ” μΌœμ§€κ³ , 켜져 μžˆλŠ” μ „κ΅¬λŠ” κΊΌμ§€κ²Œ λœλ‹€. 1번 μŠ€μœ„μΉ˜λ₯Ό λˆŒλ €μ„ κ²½μš°μ—λŠ” 1, 2번 μ „κ΅¬μ˜ μƒνƒœκ°€ λ°”λ€Œκ³ , N번 μŠ€μœ„μΉ˜λ₯Ό ..

[λ°±μ€€] 17471 κ²Œλ¦¬λ§¨λ”λ§ (파이썬)

κ³¨λ“œ β…£ https://www.acmicpc.net/problem/17471 17471번: κ²Œλ¦¬λ§¨λ”λ§ 선거ꡬλ₯Ό [1, 4], [2, 3, 5, 6]으둜 λ‚˜λˆ„λ©΄ 각 μ„ κ±°κ΅¬μ˜ μΈκ΅¬λŠ” 9, 8이 λœλ‹€. 인ꡬ μ°¨μ΄λŠ” 1이고, 이 값보닀 더 μž‘μ€ κ°’μœΌλ‘œ 선거ꡬλ₯Ό λ‚˜λˆŒ μˆ˜λŠ” μ—†λ‹€. www.acmicpc.net πŸ“„ 문제 μ„ κ±°μ—μ„œλŠ” μ΅œλŒ€ν•œ κ³΅ν‰ν•˜κ²Œ 선거ꡬλ₯Ό νšμ •ν•˜λ €κ³  ν•œλ‹€. λ°±μ€€μ‹œλŠ” N개의 κ΅¬μ—­μœΌλ‘œ λ‚˜λˆ„μ–΄μ Έ 있고, ꡬ역은 1λ²ˆλΆ€ν„° Nλ²ˆκΉŒμ§€ λ²ˆν˜Έκ°€ 맀겨져 μžˆλ‹€. ꡬ역을 두 개의 μ„ κ±°κ΅¬λ‘œ λ‚˜λˆ μ•Ό ν•˜κ³ , 각 ꡬ역은 두 선거ꡬ 쀑 ν•˜λ‚˜μ— ν¬ν•¨λ˜μ–΄μ•Ό ν•œλ‹€. μ„ κ±°κ΅¬λŠ” ꡬ역을 적어도 ν•˜λ‚˜ 포함해야 ν•˜κ³ , ν•œ 선거ꡬ에 ν¬ν•¨λ˜μ–΄ μžˆλŠ” ꡬ역은 λͺ¨λ‘ μ—°κ²°λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€. ꡬ역 Aμ—μ„œ μΈμ ‘ν•œ ꡬ역을 ν†΅ν•΄μ„œ ꡬ역 B둜 갈 수 μžˆμ„ λ•Œ, 두..

[λ°±μ€€] 1976 μ—¬ν–‰ κ°€μž (파이썬)

κ³¨λ“œ β…£ https://www.acmicpc.net/problem/1976 1976번: μ—¬ν–‰ κ°€μž λ™ν˜μ΄λŠ” μΉœκ΅¬λ“€κ³Ό ν•¨κ»˜ 여행을 κ°€λ €κ³  ν•œλ‹€. ν•œκ΅­μ—λŠ” λ„μ‹œκ°€ N개 있고 μž„μ˜μ˜ 두 λ„μ‹œ 사이에 길이 μžˆμ„ μˆ˜λ„, 없을 μˆ˜λ„ μžˆλ‹€. λ™ν˜μ΄μ˜ μ—¬ν–‰ 일정이 μ£Όμ–΄μ‘Œμ„ λ•Œ, 이 μ—¬ν–‰ κ²½λ‘œκ°€ κ°€λŠ₯ν•œ 것인 www.acmicpc.net πŸ“„ 문제 ν•œκ΅­μ—λŠ” λ„μ‹œκ°€ N개 있고 μž„μ˜μ˜ 두 λ„μ‹œ 사이에 길이 μžˆμ„ μˆ˜λ„, 없을 μˆ˜λ„ μžˆλ‹€. λ™ν˜μ΄μ˜ μ—¬ν–‰ 일정이 μ£Όμ–΄μ‘Œμ„ λ•Œ, 이 μ—¬ν–‰ κ²½λ‘œκ°€ κ°€λŠ₯ν•œ 것인지 μ•Œμ•„λ³΄μž. 쀑간에 λ‹€λ₯Έ λ„μ‹œλ₯Ό κ²½μœ ν•΄μ„œ 여행을 ν•  μˆ˜λ„ μžˆλ‹€. 같은 λ„μ‹œλ₯Ό μ—¬λŸ¬ 번 λ°©λ¬Έν•˜λŠ” 것도 κ°€λŠ₯ν•˜λ‹€. 예λ₯Ό λ“€μ–΄, λ„μ‹œκ°€ 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, λ™ν˜μ΄μ˜ μ—¬ν–‰ κ³„νšμ΄ E C B..

[λ°±μ€€] 14267 νšŒμ‚¬ λ¬Έν™” 1 (파이썬)

κ³¨λ“œ β…£ https://www.acmicpc.net/problem/14267 14267번: νšŒμ‚¬ λ¬Έν™” 1 μ˜μ„ νšŒμ‚¬μ—λŠ” 맀우 쒋은 λ¬Έν™”κ°€ μžˆλŠ”λ°, λ°”λ‘œ 상사가 직속 λΆ€ν•˜λ₯Ό μΉ­μ°¬ν•˜λ©΄ κ·Έ λΆ€ν•˜κ°€ λΆ€ν•˜μ˜ 직속 λΆ€ν•˜λ₯Ό μ—°μ‡„μ μœΌλ‘œ μΉ­μ°¬ν•˜λŠ” 내리 칭찬이 μžˆλ‹€. 즉, 상사가 ν•œ 직속 λΆ€ν•˜λ₯Ό μΉ­μ°¬ν•˜λ©΄ κ·Έ λΆ€ν•˜ www.acmicpc.net πŸ“„ 문제 μ˜μ„ νšŒμ‚¬μ—λŠ” 맀우 쒋은 λ¬Έν™”κ°€ μžˆλŠ”λ°, 상사가 직속 λΆ€ν•˜λ₯Ό μΉ­μ°¬ν•˜λ©΄ κ·Έ λΆ€ν•˜κ°€ λΆ€ν•˜μ˜ 직속 λΆ€ν•˜λ₯Ό μ—°μ‡„μ μœΌλ‘œ μΉ­μ°¬ν•˜λŠ” 내리 칭찬이 μžˆλ‹€. 즉, 상사가 ν•œ 직속 λΆ€ν•˜λ₯Ό μΉ­μ°¬ν•˜λ©΄ κ·Έ λΆ€ν•˜μ˜ λͺ¨λ“  λΆ€ν•˜λ“€μ΄ 칭찬을 λ°›λŠ”λ‹€. λͺ¨λ“  μΉ­μ°¬μ—λŠ” 칭찬의 정도λ₯Ό μ˜λ―Έν•˜λŠ” μˆ˜μΉ˜κ°€ μžˆλŠ”λ°, 이 수치 λ˜ν•œ λΆ€ν•˜λ“€μ—κ²Œ λ˜‘κ°™μ΄ μΉ­μ°¬λ°›λŠ”λ‹€. 직속 상사와 직속 λΆ€ν•˜κ΄€κ³„μ— λŒ€ν•΄ 주어지고, 칭찬에 λŒ€ν•œ 정보가 ..

728x90
λ°˜μ‘ν˜•