전체 κΈ€

πŸ₯‡μ½”λ”©ν…ŒμŠ€νŠΈ:Algorithm

[swea 1244-파이썬][S/W λ¬Έμ œν•΄κ²° μ‘μš©] 2일차 - μ΅œλŒ€ μƒκΈˆ

swea 1244 [S/W λ¬Έμ œν•΄κ²° μ‘μš©] 2일차 - μ΅œλŒ€ μƒκΈˆ μ‚¬μš©μ–Έμ–΄ : PYTHON 풀이 κ΅¬ν˜„μ„ μœ„ν•œ 생각 λ°±νŠΈλž˜ν‚Ήμ„ μ‚¬μš©ν•˜μ—¬ λͺ¨λ“  경우λ₯Ό 쀑볡없이 νƒμƒ‰ν•œλ‹€. λͺ¨λ“  경우λ₯Ό νƒμƒ‰ν•˜λ©° goal(주어진 숫자λ₯Ό λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œ κ°’)κ³Ό 차이가 κ°€μž₯ μž‘μ€ 값이 정닡이닀. πŸ’‘ goal : μ΄λ™νšŸμˆ˜ μ œν•œμ΄ μ—†λ‹€κ³  ν•  λ•Œ, 숫자λ₯Ό swapν•΄μ„œ 도달할 수 μžˆλŠ” μ΅œλŒ€κ°’μ€ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œ 값이닀. λ°±νŠΈλž˜ν‚Ή μˆ«μžμΉ΄λ“œ 1,2,3,4κ°€ μžˆλ‹€κ³  ν•  λ•Œ 두 번 κ΅ν™˜ν•  수 μžˆλŠ” λͺ¨λ“  κ²½μš°λŠ” μœ„ κ·Έλ¦Όκ³Ό κ°™λ‹€. (xν‘œμ‹œλŠ” μ€‘λ³΅λ˜λŠ” 경우) λ°”λ‘œ 직전에 κ΅ν™˜ν•œ κ²½μš°λ³΄λ‹€ λ’€μ˜ 경우만 μ‘°νšŒν•˜λ©΄ 쀑볡없이 κ΅ν™˜ν•  수 μžˆλ‹€. λ°”λ‘œ 직전에 κ΅ν™˜ν•œ 경우λ₯Ό κΈ°μ–΅ν•˜κΈ° μœ„ν•΄μ„œ stack을 ν™œμš©ν•˜μ˜€λ‹€. μ½”λ“œ def backTracking(m): gl..

πŸ₯‡μ½”λ”©ν…ŒμŠ€νŠΈ:Algorithm

[λ°±μ€€ 14500번-파이썬]ν…ŒνŠΈλ‘œλ―Έλ…Έ

λ°±μ€€ (BOJ) 14500 https://www.acmicpc.net/problem/14500 μ‚¬μš©μ–Έμ–΄ : PYTHON 1.문제 2.풀이 브루트포슀 μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜λŠ” λ¬Έμ œμ΄λ‹€. ( λ‹€λ₯Έ 풀이λ₯Ό μΆ”κ°€ν•˜μ˜€μŠ΅λ‹ˆλ‹€) μ‹œκ°„μ œν•œμ€ 2초인데 1μ–΅=1초의 룰에 λŒ€μž…ν–ˆμ„λ•Œ 2천8백만이 λ‚˜μ˜€λ―€λ‘œ 브루트포슀 μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•΄λ„ λœλ‹€. 499*499*19*6 = 28,386,114 νšŒμ „ λ˜λŠ” λŒ€μΉ­μœΌλ‘œ λ§Œλ“€ 수 μžˆλŠ” λͺ¨λ“  ν…ŒνŠΈλ‘œλ―Έλ…Έλ₯Ό 1κ³Ό 0의 λ°°μ—΄λ‘œ λ§Œλ“ λ‹€. 19개의 ν…ŒνŠΈλ‘œλ―Έλ…Έλ“€μ„ λŒμ•„κ°€λ©° μ’…μ΄μ˜ λͺ¨λ“  배치 κ°€λŠ₯ν•œ ꡬ역에 λ°°μΉ˜ν•œλ‹€. 그리고 λͺ¨λ“  λ°°μΉ˜μ€‘μ—μ„œ μ΅œλŒ“κ°’μ„ μ°ΎλŠ”λ‹€. 이 문제λ₯Ό ν†΅ν•΄μ„œ 연산이 λ³΅μž‘ν•΄ 질 λ•ŒλŠ” ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ³΅μž‘ν•œ 연산듀을 λΆ„ν• ν•˜λ©΄ μ’€ 더 μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŒμ„ μ•Œκ²Œλ˜μ—ˆλ‹€. 3.μ½”λ“œ import sys..

πŸ₯‡μ½”λ”©ν…ŒμŠ€νŠΈ:Algorithm

[λ°±μ€€ 1107번-파이썬]리λͺ¨μ»¨

λ°±μ€€ (BOJ) 1107 https://www.acmicpc.net/problem/1107 μ‚¬μš©μ–Έμ–΄ : PYTHON 1.문제 2.풀이 2-1. μ‹œλ„ν–ˆλ‹€κ°€ μ‹€νŒ¨ν•œ 풀이 N : 5457 M : 3 κ³ μž₯λ‚œ λ²„νŠΌ : [5,7] 이면 μž…λ ₯이 κ°€λŠ₯ν•œ λ²„νŠΌλ“€μ€ [0,1,2,3,4,5,6,8,9]이닀. 5457의 첫 번째 숫자 5κ°€ μ—†μœΌλ―€λ‘œ 첫 번째 숫자λ₯Ό 4 ν˜Ήμ€ 6을 μž…λ ₯ν•˜λŠ” 것이 μ΅œμ†Œλ‘œ 이동할 수 μžˆλŠ” μˆ˜κ°€ 될 것이닀. 이 λ•Œ 4λ₯Ό μž…λ ₯ν•œ κ²½μš°λŠ” 뒀에 숫자λ₯Ό μ΅œλŒ€ν•œ 큰 수둜 μž…λ ₯ν•΄μ•Ό ν•˜κ³ , 6을 μž…λ ₯ν•œ κ²½μš°λŠ” μ΅œλŒ€ν•œ μž‘μ€μˆ˜λ₯Ό μž…λ ₯ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•˜μ—¬ 문제λ₯Ό ν’€κ³ μž ν–ˆλ‹€. 2-2. μ˜¬λ°”λ₯Έ 풀이 브루트포슀 μ•Œκ³ λ¦¬μ¦˜ 0 ~ 999899+1 κΉŒμ§€ 리λͺ¨μ»¨μœΌλ‘œ μž…λ ₯ν•  수 μžˆλŠ” λͺ¨λ“  μˆ«μžλ“€μ„ λΉ„κ΅ν•˜λ©° μ΅œμ†Ÿκ°’μ„ μ°ΎλŠ”λ‹€. N의 ..

πŸ₯‡μ½”λ”©ν…ŒμŠ€νŠΈ:Algorithm

[λ°±μ€€ 11053번-파이썬]κ°€μž₯ κΈ΄ μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄

λ°±μ€€ (BOJ) 11053번 https://www.acmicpc.net/problem/11053 μ‚¬μš©μ–Έμ–΄ : PYTHON 1.문제 2.풀이 A={10,20,10,30,20,50}을 예둜 λ“€μ–΄ μƒκ°ν•΄λ³΄μ•˜λ‹€. dp[i] = A[0], A[1], ... A[i] μΌλ•Œ 'μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄'μ—μ„œ A[i]의 μœ„μΉ˜(인덱슀)κ°’ 이닀. i=0 일 λ•Œ dp[0]λŠ” A[0] 즉 10의 'μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄'={10} μ—μ„œ μœ„μΉ˜ 즉 1 이닀. i=1 일 λ•Œ dp[1]λŠ” A[1] 즉 20의 'μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄'={10,20} μ—μ„œ μœ„μΉ˜ 즉 2 이닀. i=2 일 λ•Œ dp[2]λŠ” A[2] 즉 10의 'μ¦κ°€ν•˜λŠ” λΆ€λΆ„ μˆ˜μ—΄'={10,20} μ—μ„œ μœ„μΉ˜ 즉 1 이닀. i=3 일..

πŸ₯‡μ½”λ”©ν…ŒμŠ€νŠΈ:Algorithm

[λ°±μ€€ 11052번-파이썬]μΉ΄λ“œ κ΅¬λ§€ν•˜κΈ°

λ°±μ€€ (BOJ) 11052번 https://www.acmicpc.net/problem/11052 μ‚¬μš©μ–Έμ–΄ : PYTHON 1.문제 2.풀이 μ΅œμ ν•΄(μ΅œλŒ“κ°’)을 κ΅¬ν•˜λŠ” λ¬Έμ œμ΄λ―€λ‘œ λ‹€μ΄λ‚˜λ―Ή ν”„λ‘œκ·Έλž˜λ°μ„ μ‚¬μš©ν•˜μ—¬ ν’€ 수 μžˆμ—ˆλ‹€. μ΅œμ ν•΄μ˜ 일뢀뢄이 κ·Έ 뢀뢄에 λŒ€ν•œ μ΅œμ ν•΄κ°€ DP μˆœν™˜μ‹μ„ μ„Έμš°λŠ” μΆœλ°œμ μž„μ„ μƒκ°ν–ˆλ‹€. N이 4이고 P1=1, P2=5, P3=6, P4=7인 경우 μ΅œλŒ“κ°’ = max(P4λ₯Ό μ„ νƒν•˜μ§€ μ•Šμ€ 경우, P4λ₯Ό μ„ νƒν•œ 경우)이닀. μ΄λ•Œ P4λ₯Ό μ„ νƒν•˜λ©΄ N의 갯수λ₯Ό λͺ¨λ‘ μ±„μš°κΈ° λ•Œλ¬Έμ— P4ν•˜λ‚˜λ§Œ μ‚΄ 수 μžˆλ‹€. λ”°λΌμ„œ max{(P1,P2,P3)의 쑰합을 μ΄μš©ν•΄μ„œ 4λ₯Ό λ§Œλ“€ 수 μžˆλŠ” μ΅œλŒ“κ°’, 7}이 λœλ‹€. μœ„ μ΅œμ ν•΄μ˜ 일뢀뢄 (P1,P2,P3)의 쑰합을 μ΄μš©ν•΄μ„œ 4λ₯Ό λ§Œλ“€ 수 μžˆλŠ” μ΅œλŒ“κ°’ = (P3λ₯Ό ..

πŸ₯‡μ½”λ”©ν…ŒμŠ€νŠΈ:Algorithm

[λ°±μ€€ 1463번-파이썬]1둜 λ§Œλ“€κΈ°

λ°±μ€€ (BOJ) 1463번 https://www.acmicpc.net/problem/1463 μ‚¬μš©μ–Έμ–΄ : PYTHON 1.문제 2.풀이 λ‹€μ΄λ‚˜λ―Ή ν”„λ‘œκ·Έλž˜λ° (Bottom up) λ°©μ‹μœΌλ‘œ ν’€μ–΄μ•Ό ν–ˆλ‹€. 2-1.μˆœν™˜μ‹μ„ μ„Έμš°κΈ° μˆœν™˜μ‹μ„ μ„Έμš°λŠ” μ‚¬κ³ μ˜ μΆœλ°œμ μ€ 'μ΅œμ ν•΄μ˜ 일뢀뢄이 κ·Έ 뢀뢄에 λŒ€ν•œ μ΅œμ ν•΄μΈκ°€?' 라고 λ°°μ› λ‹€. μ •μˆ˜ N을 1둜 λ§Œλ“œλŠ” μ΅œμ†Œ 횟수λ₯Ό κ΅¬ν•˜λŠ” ν•¨μˆ˜λ₯Ό D(N)이라고 ν•˜μž. μ΅œμ ν•΄λ₯Ό 생각해보면 λ‹€μŒκ³Ό κ°™λ‹€. D(10)은 10을 2둜 λ‚˜λˆˆ D(5)와, 10μ—μ„œ 1을 λΊ€ D(9)쀑 더 μž‘μ€ κ°’ + 2둜 λ‚˜λˆ„κ±°λ‚˜ 1을 λΊ€ μ—°μ‚°νšŸμˆ˜ 1κ³Ό κ°™λ‹€. D(12)λŠ” 12λ₯Ό 3으둜 λ‚˜λˆˆ D(4)와, 12λ₯Ό 2둜 λ‚˜λˆˆ D(5), 12μ—μ„œ 1을 λΊ€ D(11) 쀑 더 μž‘μ€κ°’ + μ—°μ‚°μ˜ 횟수 1κ³Ό κ°™..

πŸ₯‡μ½”λ”©ν…ŒμŠ€νŠΈ:Algorithm

[λ°±μ€€ 6588번-파이썬]κ³¨λ“œλ°”νμ˜ μΆ”μΈ‘

λ°±μ€€ (BOJ) 6588번 https://www.acmicpc.net/problem/6588 μ‚¬μš©μ–Έμ–΄ : PYTHON 1.문제 문제 1742λ…„, λ…μΌμ˜ μ•„λ§ˆμΆ”μ–΄ μˆ˜ν•™κ°€ ν¬λ¦¬μŠ€ν‹°μ•ˆ κ³¨λ“œλ°”νλŠ” λ ˆμ˜¨ν•˜λ₯΄νŠΈ μ˜€μΌλŸ¬μ—κ²Œ λ‹€μŒκ³Ό 같은 좔츑을 μ œμ•ˆν•˜λŠ” νŽΈμ§€λ₯Ό λ³΄λƒˆλ‹€. 4보닀 큰 λͺ¨λ“  μ§μˆ˜λŠ” 두 ν™€μˆ˜ μ†Œμˆ˜μ˜ ν•©μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 8은 3 + 5둜 λ‚˜νƒ€λ‚Ό 수 있고, 3κ³Ό 5λŠ” λͺ¨λ‘ ν™€μˆ˜μΈ μ†Œμˆ˜μ΄λ‹€. 또, 20 = 3 + 17 = 7 + 13, 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 이닀. 이 좔츑은 아직도 ν•΄κ²°λ˜μ§€ μ•Šμ€ λ¬Έμ œμ΄λ‹€. 백만 μ΄ν•˜μ˜ λͺ¨λ“  μ§μˆ˜μ— λŒ€ν•΄μ„œ, 이 좔츑을 κ²€μ¦ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…λ ₯ μž…λ ₯은 ν•˜λ‚˜ λ˜λŠ” κ·Έ μ΄μƒμ˜ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ 이루어져 μžˆλ‹€...

πŸ₯‡μ½”λ”©ν…ŒμŠ€νŠΈ:Algorithm

[λ°±μ€€ 17298번-파이썬]였큰수

λ°±μ€€ (BOJ) 17298번 https://www.acmicpc.net/problem/17298 μ‚¬μš©μ–Έμ–΄ : PYTHON 1.문제 2.풀이 μ‹œκ°„μ œν•œμ΄ 1초이기 λ•Œλ¬Έμ— 쀑첩 반볡문으둜 ν’€κ²Œλ˜λ©΄ μ‹œκ°„μ΄ˆκ³Όκ°€ λ‚˜μ˜¬κ²ƒ κ°™μ•„μ„œ μŠ€νƒμ„ μ‚¬μš©ν•˜μ—¬ ν’€μ–΄μ•Όκ² λ‹€κ³  μƒκ°ν–ˆλ‹€. μ²˜μŒμ—λŠ” 큰 μˆ˜μ— 생각이 μ‚¬λ‘œ μž‘ν˜€μ„œ μŠ€νƒμ— κ°€μž₯ 큰 값을 μœ μ§€ν•˜λ©΄ μ•ˆλ κΉŒ? λΌλŠ” 생각을 κ³„μ†ν•˜μ˜€λ‹€. 1μ‹œκ°„ 정도 고민해보닀 λ„μ €νžˆ μ•ˆλ κ²ƒ κ°™μ•„μ„œ λ‹€λ₯ΈλΆ„λ“€μ˜ 풀이λ₯Ό κ²€μƒ‰ν•˜μ˜€λ‹€. 검색을 톡해 μ•Œκ²Œλœ μ•„μ΄λ””μ–΄λŠ” λ‹€μŒκ³Ό κ°™λ‹€. μŠ€νƒμ— μˆ˜μ—΄μ˜ κ°€μž₯ 큰 값을 μœ μ§€ν•˜λŠ” 것이 μ•„λ‹Œ, μŠ€νƒμ˜ 제일 μœ— 값보닀 큰 값이 λ‚˜μ˜¬λ•Œ κΉŒμ§€ μˆ˜μ—΄μ˜ 값듀을 μ°¨λ‘€λŒ€λ‘œ μŒ“λŠ” κ²ƒμ΄μ—ˆλ‹€. κ·ΈλŸ¬λ‹€κ°€ μŠ€νƒμ˜ 제일 μœ„μ˜ 값보닀 큰 μˆ˜μ—΄μ˜ 값이 λ‚˜μ˜€λ©΄ κ·Έ μˆ˜λŠ” μŠ€νƒ 제일 μœ— κ°’μ˜ μ˜€ν°μˆ˜κ°€ λœλ‹€...

mc.thd
mincheolsong