728x90
λ°˜μ‘ν˜•

파이썬 24

[λ°±μ€€] 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 πŸ“„ 문제 μ˜μ„ νšŒμ‚¬μ—λŠ” 맀우 쒋은 λ¬Έν™”κ°€ μžˆλŠ”λ°, 상사가 직속 λΆ€ν•˜λ₯Ό μΉ­μ°¬ν•˜λ©΄ κ·Έ λΆ€ν•˜κ°€ λΆ€ν•˜μ˜ 직속 λΆ€ν•˜λ₯Ό μ—°μ‡„μ μœΌλ‘œ μΉ­μ°¬ν•˜λŠ” 내리 칭찬이 μžˆλ‹€. 즉, 상사가 ν•œ 직속 λΆ€ν•˜λ₯Ό μΉ­μ°¬ν•˜λ©΄ κ·Έ λΆ€ν•˜μ˜ λͺ¨λ“  λΆ€ν•˜λ“€μ΄ 칭찬을 λ°›λŠ”λ‹€. λͺ¨λ“  μΉ­μ°¬μ—λŠ” 칭찬의 정도λ₯Ό μ˜λ―Έν•˜λŠ” μˆ˜μΉ˜κ°€ μžˆλŠ”λ°, 이 수치 λ˜ν•œ λΆ€ν•˜λ“€μ—κ²Œ λ˜‘κ°™μ΄ μΉ­μ°¬λ°›λŠ”λ‹€. 직속 상사와 직속 λΆ€ν•˜κ΄€κ³„μ— λŒ€ν•΄ 주어지고, 칭찬에 λŒ€ν•œ 정보가 ..

[μ•Œκ³ λ¦¬μ¦˜] 이진 탐색 / 이뢄 탐색 (Binary Search)

이진 탐색은 μ •λ ¬λœ λ¦¬μŠ€νŠΈμ— μ μš©ν•  수 μžˆλŠ” κ°„λ‹¨ν•œ 고속 탐색 기법이며, 이뢄 탐색이라고도 λΆˆλ¦°λ‹€. 순차 탐색 리슀트 μ•ˆμ— μžˆλŠ” νŠΉμ •ν•œ 데이터λ₯Ό μ°ΎκΈ° μœ„ν•΄ μ•žμ—μ„œλΆ€ν„° 데이터λ₯Ό ν•˜λ‚˜μ”© ν™•μΈν•˜λŠ” 방법이닀. 이진 탐색 μ •λ ¬λ˜μ–΄ μžˆλŠ” λ¦¬μŠ€νŠΈμ—μ„œ 탐색 λ²”μœ„λ₯Ό μ ˆλ°˜μ”© μ’ν˜€κ°€λ©° 데이터λ₯Ό νƒμƒ‰ν•˜λŠ” 방법이닀. 이진 탐색은 μ‹œμž‘μ , 끝점, 쀑간점을 μ΄μš©ν•˜μ—¬ 탐색 λ²”μœ„λ₯Ό μ„€μ •ν•œλ‹€. 이진 탐색 (이뢄 탐색) μ•Œκ³ λ¦¬μ¦˜ μ •λ ¬λ˜μ–΄ μžˆλŠ” λ¦¬μŠ€νŠΈμ—μ„œ 탐색 λ²”μœ„λ₯Ό μ ˆλ°˜μ”© μ’ν˜€κ°€λ©° 데이터λ₯Ό νƒμƒ‰ν•˜λŠ” 방법이닀. λ°°μ—΄ λ‚΄λΆ€μ˜ 데이터가 μ •λ ¬λ˜μ–΄ μžˆμ–΄μ•Όλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. μ‹œμž‘μ , 끝점, 쀑간점(start, end, mid) λ³€μˆ˜ 3개λ₯Ό μ‚¬μš©ν•˜μ—¬ νƒμƒ‰ν•œλ‹€. μ°ΎμœΌλ €λŠ” 데이터와 쀑간점 μœ„μΉ˜μ— μžˆλŠ” 데이터λ₯Ό 반볡적으둜 λΉ„κ΅ν•΄μ„œ μ›ν•˜λŠ” 데..

Algorithm 2023.08.17

[λ°±μ€€] 2437 μ €μšΈ (파이썬)

κ³¨λ“œ β…‘ https://www.acmicpc.net/problem/2437 2437번: μ €μšΈ ν•˜λ‚˜μ˜ μ–‘νŒ” μ €μšΈμ„ μ΄μš©ν•˜μ—¬ 물건의 무게λ₯Ό μΈ‘μ •ν•˜λ €κ³  ν•œλ‹€. 이 μ €μšΈμ˜ μ–‘ νŒ”μ˜ λμ—λŠ” λ¬Όκ±΄μ΄λ‚˜ μΆ”λ₯Ό μ˜¬λ €λ†“λŠ” μ ‘μ‹œκ°€ 달렀 있고, μ–‘νŒ”μ˜ κΈΈμ΄λŠ” κ°™λ‹€. λ˜ν•œ, μ €μšΈμ˜ ν•œμͺ½μ—λŠ” μ €μšΈμΆ”λ“€λ§Œ 놓 www.acmicpc.net πŸ“„ 문제 ν•˜λ‚˜μ˜ μ–‘νŒ” μ €μšΈμ„ μ΄μš©ν•˜μ—¬ 물건의 무게λ₯Ό μΈ‘μ •ν•˜λ €κ³  ν•œλ‹€. μ €μšΈμ˜ ν•œμͺ½μ—λŠ” μ €μšΈμΆ”λ“€λ§Œ 놓을 수 있고, λ‹€λ₯Έ μͺ½μ—λŠ” 무게λ₯Ό μΈ‘μ •ν•˜λ €λŠ” 물건만 μ˜¬λ €λ†“μ„ 수 μžˆλ‹€. λ¬΄κ²Œκ°€ μ–‘μ˜ μ •μˆ˜μΈ N개의 μ €μšΈμΆ”κ°€ μ£Όμ–΄μ§ˆ λ•Œ, 이 좔듀을 μ‚¬μš©ν•˜μ—¬ μΈ‘μ •ν•  수 μ—†λŠ” μ–‘μ˜ μ •μˆ˜ 무게 쀑 μ΅œμ†Ÿκ°’μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. πŸ’‘ 아이디어 그리디 μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. μΆ”μ˜ 무게λ₯Ό μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œλ‹€. 적은 λ¬΄κ²ŒλΆ€ν„° 더해..

[λ°±μ€€] 21758 κΏ€ λ”°κΈ° (파이썬)

κ³¨λ“œ β…€ https://www.acmicpc.net/problem/21758 21758번: κΏ€ λ”°κΈ° 첫 번째 쀄에 κ°€λŠ₯ν•œ μ΅œλŒ€μ˜ κΏ€μ˜ 양을 좜λ ₯ν•œλ‹€. www.acmicpc.net πŸ“„ 문제 N개의 μž₯μ†Œκ°€ μžˆλ‹€. μž₯μ†Œλ“€ 쀑 μ„œλ‘œ λ‹€λ₯Έ 두 곳을 κ³¨λΌμ„œ λ²Œμ„ ν•œ λ§ˆλ¦¬μ”© λ‘”λ‹€. 또, λ‹€λ₯Έ ν•œ μž₯μ†Œλ₯Ό κ³¨λΌμ„œ λ²Œν†΅μ„ λ‘”λ‹€ 두 마리 λ²Œμ€ λ²Œν†΅μœΌλ‘œ λ˜‘λ°”λ‘œ λ‚ μ•„κ°€λ©΄μ„œ μ§€λ‚˜κ°€λŠ” λͺ¨λ“  μΉΈμ—μ„œ 꿀을 λ”΄λ‹€. 각 μž₯μ†Œμ— 적힌 μˆ«μžλŠ” 벌이 μ§€λ‚˜κ°€λ©΄μ„œ 꿀을 λ”Έ 수 μžˆλŠ” 양이닀. 두 λ§ˆλ¦¬κ°€ λͺ¨λ‘ μ§€λ‚˜κ°„ μž₯μ†Œμ—μ„œλŠ” 두 마리 λͺ¨λ‘ ν‘œμ‹œλœ μ–‘λ§ŒνΌμ˜ 꿀을 λ”΄λ‹€. (λ²Œν†΅μ΄ μžˆλŠ” μž₯μ†Œμ—μ„œλ„ κ°™λ‹€.) 벌이 μ‹œμž‘ν•œ μž₯μ†Œμ—μ„œλŠ” μ–΄λ–€ λ²Œλ„ 꿀을 λ”Έ 수 μ—†λ‹€. λ²Œλ“€μ΄ λ”Έ 수 μžˆλŠ” κ°€λŠ₯ν•œ μ΅œλŒ€μ˜ κΏ€μ˜ 양을 κ³„μ‚°ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λΌ. πŸ’‘ 아이디어 그리디 ..

[λ°±μ€€] 1261 μ•Œκ³ μŠ€νŒŸ (파이썬)

κ³¨λ“œ β…£ https://www.acmicpc.net/problem/1261 1261번: μ•Œκ³ μŠ€νŒŸ 첫째 쀄에 미둜의 크기λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ°€λ‘œ 크기 M, μ„Έλ‘œ 크기 N (1 ≤ N, M ≤ 100)이 주어진닀. λ‹€μŒ N개의 μ€„μ—λŠ” 미둜의 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 숫자 0κ³Ό 1이 주어진닀. 0은 빈 방을 μ˜λ―Έν•˜κ³ , 1은 벽을 의미 www.acmicpc.net πŸ“„ 문제 λ―Έλ‘œλŠ” N*M 크기이며, 총 1*1 크기의 방으둜 이루어져 μžˆλ‹€. λ―Έλ‘œλŠ” 빈 λ°© λ˜λŠ” 벽으둜 이루어져 있고, 빈 방은 자유둭게 닀닐 수 μžˆμ§€λ§Œ, 벽은 λΆ€μˆ˜μ§€ μ•ŠμœΌλ©΄ 이동할 수 μ—†λ‹€. μ–΄λ–€ λ°©μ—μ„œ 이동할 수 μžˆλŠ” 방은 μƒν•˜μ’Œμš°λ‘œ μΈμ ‘ν•œ 빈 방이닀. 즉, ν˜„μž¬ μš΄μ˜μ§„μ΄ (x, y)에 μžˆμ„ λ•Œ, 이동할 수 μžˆλŠ” 방은 (x+1, y), (x, y+1), (x-1, ..

[μ†Œν”„ν‹°μ–΄] [인증평가(5μ°¨) 기좜] 업무 처리 (파이썬) (2)

λ‚œμ΄λ„ : β˜…β˜…β˜…β˜†β˜† https://softeer.ai/practice/info.do?idx=1&eid=1256&sw_prbl_sbms_sn=245958 Softeer μ—°μŠ΅λ¬Έμ œλ₯Ό 담을 Set을 μ„ νƒν•΄μ£Όμ„Έμš”. μ·¨μ†Œ 확인 softeer.ai πŸ“„ 문제 μ–΄λ–€ λΆ€μ„œμ˜ 업무 쑰직은 μ™„μ „μ΄μ§„νŠΈλ¦¬ λͺ¨μ–‘이닀. λͺ¨λ“  말단 직원은 λΆ€μ„œμž₯κΉŒμ§€ μ˜¬λΌκ°€λŠ” 거리가 λ™μΌν•˜λ‹€. (ν¬ν™”μ΄μ§„νŠΈλ¦¬) 말단 μ§μ›λ“€λ§Œ 각각 K개의 μˆœμ„œκ°€ 정해진 업무λ₯Ό 가지고 μžˆλ‹€. λŒ€κΈ°ν•˜λŠ” 업무가 μžˆλŠ” 경우, 직원듀은 업무가 올라온 μˆœμ„œλŒ€λ‘œ ν•˜λ‚˜ μ²˜λ¦¬ν•΄μ„œ μƒμ‚¬μ—κ²Œ μ˜¬λ¦°λ‹€. 단, ν™€μˆ˜ 번째 λ‚ μ§œμ—λŠ” μ™Όμͺ½ λΆ€ν•˜ 직원이 올린 업무λ₯Ό, 짝수 번째 λ‚ μ§œμ—λŠ” 였λ₯Έμͺ½ λΆ€ν•˜ 직원이 올린 업무λ₯Ό μ²˜λ¦¬ν•œλ‹€. λΆ€μ„œμž₯이 μ²˜λ¦¬ν•œ 일은 μ™„λ£Œλœ 것이닀. μ—…λ¬΄λŠ” R일 λ™μ•ˆ μ§„ν–‰λ˜λ©° 업무λ₯Ό..

[μ†Œν”„ν‹°μ–΄] [인증평가(5μ°¨) 기좜] 업무 처리 (파이썬) (1)

λ‚œμ΄λ„ : β˜…β˜…β˜…β˜†β˜† https://softeer.ai/practice/info.do?idx=1&eid=1256&sw_prbl_sbms_sn=245958 Softeer μ—°μŠ΅λ¬Έμ œλ₯Ό 담을 Set을 μ„ νƒν•΄μ£Όμ„Έμš”. μ·¨μ†Œ 확인 softeer.ai πŸ“„ 문제 μ–΄λ–€ λΆ€μ„œμ˜ 업무 쑰직은 μ™„μ „μ΄μ§„νŠΈλ¦¬ λͺ¨μ–‘이닀. λͺ¨λ“  말단 직원은 λΆ€μ„œμž₯κΉŒμ§€ μ˜¬λΌκ°€λŠ” 거리가 λ™μΌν•˜λ‹€. (ν¬ν™”μ΄μ§„νŠΈλ¦¬) 말단 μ§μ›λ“€λ§Œ 각각 K개의 μˆœμ„œκ°€ 정해진 업무λ₯Ό 가지고 μžˆλ‹€. λŒ€κΈ°ν•˜λŠ” 업무가 μžˆλŠ” 경우, 직원듀은 업무가 올라온 μˆœμ„œλŒ€λ‘œ ν•˜λ‚˜ μ²˜λ¦¬ν•΄μ„œ μƒμ‚¬μ—κ²Œ μ˜¬λ¦°λ‹€. 단, ν™€μˆ˜ 번째 λ‚ μ§œμ—λŠ” μ™Όμͺ½ λΆ€ν•˜ 직원이 올린 업무λ₯Ό, 짝수 번째 λ‚ μ§œμ—λŠ” 였λ₯Έμͺ½ λΆ€ν•˜ 직원이 올린 업무λ₯Ό μ²˜λ¦¬ν•œλ‹€. λΆ€μ„œμž₯이 μ²˜λ¦¬ν•œ 일은 μ™„λ£Œλœ 것이닀. μ—…λ¬΄λŠ” R일 λ™μ•ˆ μ§„ν–‰λ˜λ©° 업무λ₯Ό..

[λ°±μ€€] 1238 νŒŒν‹° (파이썬)

κ³¨λ“œ β…’ https://www.acmicpc.net/problem/1238 1238번: νŒŒν‹° 첫째 쀄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), Xκ°€ 곡백으둜 κ΅¬λΆ„λ˜μ–΄ μž…λ ₯λœλ‹€. 두 번째 쀄뢀터 M+1번째 μ€„κΉŒμ§€ i번째 λ„λ‘œμ˜ μ‹œμž‘μ , 끝점, 그리고 이 λ„λ‘œλ₯Ό μ§€λ‚˜λŠ”λ° ν•„μš”ν•œ μ†Œμš”μ‹œκ°„ Tiκ°€ λ“€μ–΄ www.acmicpc.net πŸ“„ 문제 N개의 숫자둜 κ΅¬λΆ„λœ 각각의 λ§ˆμ„μ— ν•œ λͺ…μ˜ 학생이 μ‚΄κ³  μžˆλ‹€. Nλͺ…μ˜ 학생이 X (1 ≤ X ≤ N) 번 λ§ˆμ„μ— λͺ¨μ—¬μ„œ νŒŒν‹°λ₯Ό 벌이기둜 ν–ˆλ‹€. 각각의 학생듀은 νŒŒν‹°μ— μ°Έμ„ν•˜κΈ° μœ„ν•΄ κ±Έμ–΄κ°€μ„œ λ‹€μ‹œ κ·Έλ“€μ˜ λ§ˆμ„λ‘œ λŒμ•„μ™€μ•Ό ν•œλ‹€. ν•˜μ§€λ§Œ 이 학생듀은 μ›Œλ‚™ κ²Œμ„λŸ¬μ„œ μ΅œλ‹¨ μ‹œκ°„μ— 였고 κ°€κΈ°λ₯Ό μ›ν•œλ‹€. 이 λ„λ‘œλ“€μ€ 단방ν–₯이기 λ•Œλ¬Έμ— μ•„λ§ˆ 그듀이 였고 κ°€λŠ” κΈΈ..

[μ†Œν”„ν‹°μ–΄] [인증평가(1μ°¨) 기좜] λ‘œλ΄‡μ΄ μ§€λ‚˜κ°„ 경둜 (파이썬)

λ‚œμ΄λ„ : β˜…β˜…β˜…β˜†β˜† https://softeer.ai/practice/info.do?idx=1&eid=577 Softeer μ—°μŠ΅λ¬Έμ œλ₯Ό 담을 Set을 μ„ νƒν•΄μ£Όμ„Έμš”. μ·¨μ†Œ 확인 softeer.ai πŸ“„ 문제 λ‘œλ΄‡μ€ 였λ₯Έμͺ½(동), μ™Όμͺ½(μ„œ), μ•„λž˜(남), μœ„(뢁) 쀑 ν•œ λ°©ν–₯을 바라본닀. L: λ‘œλ΄‡μ΄ μ™Όμͺ½μœΌλ‘œ 90도 νšŒμ „ν•˜λ©°, 이에 따라 λ°”λΌλ³΄λŠ” λ°©ν–₯이 바뀐닀. R: λ‘œλ΄‡μ΄ 였λ₯Έμͺ½μœΌλ‘œ 90도 νšŒμ „ν•˜λ©°, 이에 따라 λ°”λΌλ³΄λŠ” λ°©ν–₯이 바뀐닀. A: λ‘œλ΄‡μ΄ λ°”λΌλ³΄λŠ” λ°©ν–₯으둜 두 μΉΈ μ „μ§„ν•œλ‹€. β˜…λ‘œλ΄‡μ΄ 같은 칸을 두 번 이상 λ°©λ¬Έν•˜μ§€ μ•Šλ„λ‘ λͺ…λ Ήν•œλ‹€. λ°©λ¬Έν–ˆλ‹€λ©΄ '#'이고, λ°©λ¬Έν•˜μ§€ μ•Šμ•˜λ‹€λ©΄ '.'둜 ν‘œμ‹œν•œλ‹€. λ‘œλ΄‡μ΄ 지도에 μ‚¬μˆ˜κ°€ ν‘œμ‹œν•œ λͺ¨λ“  μΉΈλ“€λ§Œμ„ λ°©λ¬Έν•˜μ—¬ μ•„λž˜ 정보λ₯Ό 계산해 μ£ΌλŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λ €κ³  ν•œλ‹€. 처..

728x90
λ°˜μ‘ν˜•