전체 κΈ€

μ•Œκ³ λ¦¬μ¦˜/BOJ

[BOJ] 20058 λ§ˆλ²•μ‚¬ 상어와 νŒŒμ΄μ–΄μŠ€ν†° - Java

✨ BFS + κ΅¬ν˜„ βž” λΆ€λΆ„ 격자λ₯Ό μ‹œκ³„λ°©ν–₯으둜 90도 νšŒμ „ https://www.acmicpc.net/problem/20058 20058번: λ§ˆλ²•μ‚¬ 상어와 νŒŒμ΄μ–΄μŠ€ν†° λ§ˆλ²•μ‚¬ μƒμ–΄λŠ” νŒŒμ΄μ–΄λ³Όκ³Ό 토넀이도λ₯Ό μ‘°ν•©ν•΄ νŒŒμ΄μ–΄μŠ€ν†°μ„ μ‹œμ „ν•  수 μžˆλ‹€. μ˜€λŠ˜μ€ νŒŒμ΄μ–΄μŠ€ν†°μ„ 크기가 2N × 2N인 격자둜 λ‚˜λˆ„μ–΄μ§„ μ–ΌμŒνŒμ—μ„œ μ—°μŠ΅ν•˜λ €κ³  ν•œλ‹€. μœ„μΉ˜ (r, c)λŠ” 격자의 rν–‰ c www.acmicpc.net πŸ“ κ³ λ €ν•΄μ•Όν•  점 2^L * 2^L 크기의 λΆ€λΆ„ 격자둜 λ‚˜λˆ„κ³  λͺ¨λ“  λΆ€λΆ„ 격자λ₯Ό μ‹œκ³„λ°©ν–₯으둜 90도 νšŒμ „ L=1일 λ•Œ, 2x2의 λΆ€λΆ„κ²©μžκ°€ μ‹œκ³„λ°©ν–₯으둜 90도 νšŒμ „ L=2일 λ•Œ, 4x4의 λΆ€λΆ„κ²©μžκ°€ μ‹œκ³„λ°©ν–₯으둜 90도 νšŒμ „ (x, y)μΉΈμ—μ„œ μΈμ ‘ν•œ μΉΈ(μƒν•˜μ’Œμš°) 쀑 μ–ΌμŒμ΄ μžˆλŠ” 칸이 3개 미만이면 (x, y)μΉΈ μ–ΌμŒμ˜..

CS/βš™οΈ 운영체제

[βš™οΈ OS] Thread

μŠ€λ ˆλ“œ μŠ€λ ˆλ“œ ν”„λ‘œμ„ΈμŠ€ 내뢀에 있음. ν•œ 개의 ν”„λ‘œμ„ΈμŠ€κ°€ μ—¬λŸ¬ μŠ€λ ˆλ“œλ₯Ό κ°€μ§ˆ 수 있음 ➑️ concurrency λ³‘λ ¬μ²˜λ¦¬ μŠ€λ ˆλ“œλΌλ¦¬ address space, resource 곡유 λ©€ν‹° μŠ€λ ˆλ“œ modern OS embedded systems multi-core processors network servers πŸ”Ή Multiple Threads 각 threadλŠ” λ³„κ°œλ‘œ μ‹€ν–‰ Memory와 I/O state은 곡유 thread 1μ—μ„œ thread 2둜 context switching이 μΌμ–΄λ‚˜λ©΄ thread1이 가지고 있던 register set을 CPU state에 μ €μž₯ thread2의 CPU state을 register set에 load Hyper-Threading : Context switching ove..

CS/βš™οΈ 운영체제

[βš™οΈ OS] Process

ν”„λ‘œμ„ΈμŠ€ πŸ”Ή ν”„λ‘œμ„ΈμŠ€ μ½”λ“œμ˜ 일뢀. μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨ 자기 독립적인 resource 가짐. single address space ➑️ protection λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ 곡유 X πŸ”Ή νŠΉμ§• ν”„λ‘œμ„ΈμŠ€ 각각 고유의 μŠ€νƒ λ©”λͺ¨λ¦¬ 보유 고유의 λ©”λͺ¨λ¦¬ νŽ˜μ΄μ§€ 보유 고유의 file descriptor table 보유 PID (Process ID) πŸ”Ή ν”„λ‘œμ„ΈμŠ€μ˜ Context CPU μˆ˜ν–‰ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” ν•˜λ“œμ›¨μ–΄ λ¬Έλ§₯ Program Counter register ν”„λ‘œμ„ΈμŠ€ μ£Όμ†Œ 곡간 code data stack ν”„λ‘œμ„ΈμŠ€ κ΄€λ ¨ 컀널 자료ꡬ쑰 PCB Kernel Stack πŸ”Ή ν”„λ‘œμ„ΈμŠ€ 생성 μžμ‹μ€ λΆ€λͺ¨μ˜ 곡간을 볡사해 κ·Έ 곡간에 μƒˆλ‘œμš΄ ν”„λ‘œκ·Έλž¨μ„ 올림 트리(계측 ꡬ쑰) ν˜•μ„± fork() μ‹œμŠ€ν…œμ½œμ„ 톡해 μžμ‹ κ³Ό λ™μΌν•œ ν”„λ‘œ..

Server/πŸ“› μ—λŸ¬ 기둝

[πŸ“› Error] Dockerμ—μ„œ λ„μš΄ mysql이 DataGripμ—μ„œ μ ‘μ†λ˜μ§€ μ•Šμ„ λ•Œ

자주 λ§ˆμ£ΌμΉ˜λŠ” 였λ₯˜λ‹€.   πŸ‘€ 였λ₯˜ λ‚΄μš©νŒ¨μŠ€μ›Œλ“œλ₯Ό 잘λͺ» μž…λ ₯ν•˜μ—¬ λ°œμƒν•˜λŠ” κ²ƒμœΌλ‘œ λ³΄μ΄μ§€λ§Œ, μ •ν™•νžˆ μž…λ ₯ν–ˆλ‹€. λ‹€λ₯Έ μ΄μœ κ°€ μžˆμ„κΉŒ κ³ λ―Όν•˜λ‹€κ°€ ν¬νŠΈλ²ˆν˜Έκ°€ λ™μΌν•˜μ—¬ μΆ©λŒν•œ 것 κ°™λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€.   πŸ‘©‍πŸ”§ 해결방법   docker-compose.yml νŒŒμΌμ—μ„œ μ„€μ •ν–ˆλ˜ 포트 번호λ₯Ό μˆ˜μ •ν•œλ‹€.μ›λž˜λŠ” 3306:3306 :으둜 μ„€μ •ν–ˆμ—ˆλ‹€. μ΄λ―Έ 둜컬 DBκ°€ 3306 포트λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ–΄ ν¬νŠΈλ²ˆν˜Έκ°€ κ²ΉμΉ˜λ―€λ‘œ 3305둜 μˆ˜μ •ν–ˆλ‹€. ν˜ΈμŠ€νŠΈμ˜ 3305 ν¬νŠΈκ°€ μ»¨ν…Œμ΄λ„ˆ λ‚΄μ˜ 3306 포트둜 μ—°κ²°λ˜λ„λ‘ ν•œ 것이닀 .   μ—°κ²°μ— ν•„μš”ν•œ 정보듀을 μž…λ ₯ν•œ ν›„ 포트 번호λ₯Ό μ•žμ„œ μ„€μ •ν•œ 3305둜 μ ‘μ†ν•˜λ„λ‘ μž‘μ„±ν•˜λ©΄ 연결이 잘된 것을 확인할 수 μžˆλ‹€.      μ°Έκ³ μžλ£Œhttps://hipopatamus.tistory.com/..

μ•Œκ³ λ¦¬μ¦˜/πŸ—‚οΈ 정리

Topological Sort (μœ„μƒμ •λ ¬)

μˆœμ„œκ°€ μ •ν•΄μ ΈμžˆλŠ” μž‘μ—…μ„ μ°¨λ‘€λ‘œ μˆ˜ν–‰ν•΄μ•Όν•  λ•Œ κ·Έ μˆœμ„œλ₯Ό κ²°μ •ν•΄μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. 예λ₯Ό 듀어보면, μœ„μ™€ 같은 μ»€λ¦¬ν˜λŸΌμ—μ„œ μ•Œκ³ λ¦¬μ¦˜μ„ μˆ˜κ°•ν•˜κ³ μž ν•˜λ©΄ μ„ μˆ˜κ³Όλͺ©λ“€μ„ μˆ˜κ°•ν•œ 후에 λ“€μ–΄μ•Όν•œλ‹€κ³  ν–ˆμ„ λ•Œ, μ΄μ‚°μˆ˜ν•™ → Cν”„λ‘œκ·Έλž˜λ° → 객체지ν–₯ν”„λ‘œκ·Έλž˜λ° → 자료ꡬ쑰 → μ•Œκ³ λ¦¬μ¦˜ μˆœμ„œλ‘œ μˆ˜κ°•μ‹ μ²­μ„ ν•˜λ©΄ λœλ‹€. 이 외에도 μ—¬λŸ¬ 개의 μˆœμ„œκ°€ μ‘΄μž¬ν•  수 μžˆλ‹€. μ„ ν›„ 관계가 λͺ…ν™•ν–ˆμ„ λ•Œ μˆœμ„œλ₯Ό κ²°μ •ν•˜μ—¬ μ •λ ¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μΈ 것이닀. πŸ”Ή μœ„μƒ μ •λ ¬ νŠΉμ§• 사이클이 λ°œμƒν•˜μ§€ μ•ŠλŠ” λ°©ν–₯μ„± κ·Έλž˜ν”„μ—μ„œμ˜ μ •λ ¬ πŸ‘‰ 사이클이 μžˆλ‹€λ©΄ μœ„μƒ μ •λ ¬ μˆ˜ν–‰ X (μ‹œμž‘μ μ„ 찾을 수 μ—†μœΌλ―€λ‘œ) 큐 λ˜λŠ” μŠ€νƒ μ‚¬μš© μ§„μž…μ°¨μˆ˜ κ³ λ € πŸ•ΉοΈ μ•Œκ³ λ¦¬μ¦˜ κ³Όμ • μ§„μž… μ°¨μˆ˜λŠ” 정점에 λ“€μ–΄μ˜€λŠ” κ°„μ„  수이고, 빨간색 μˆ«μžλŠ” μ§„μž…μ°¨μˆ˜λ₯Ό λ‚˜νƒ€λ‚Έ 것이닀. μ§„μž…μ°¨μˆ˜..

μ•Œκ³ λ¦¬μ¦˜/BOJ

[BOJ] 21609 상어 쀑학ꡐ - Java

✨ κ΅¬ν˜„ & BFS https://www.acmicpc.net/problem/21609 21609번: 상어 쀑학ꡐ 상어 μ€‘ν•™κ΅μ˜ μ½”λ”© λ™μ•„λ¦¬μ—μ„œ κ²Œμž„μ„ λ§Œλ“€μ—ˆλ‹€. 이 κ²Œμž„μ€ 크기가 N×N인 κ²©μžμ—μ„œ μ§„ν–‰λ˜κ³ , μ΄ˆκΈ°μ— 격자의 λͺ¨λ“  μΉΈμ—λŠ” 블둝이 ν•˜λ‚˜μ”© λ“€μ–΄μžˆκ³ , 블둝은 검은색 블둝, λ¬΄μ§€κ°œ 블둝, 일반 블둝 www.acmicpc.net πŸ“ κ³ λ €ν•΄μ•Όν•  점 그룹에 μ†ν•˜λŠ” λΈ”λ‘μ˜ 쑰건 일반 블둝이 적어도 ν•˜λ‚˜ 이상 일반 λΈ”λ‘μ˜ 색은 λͺ¨λ‘ 같아야함 검은색 블둝 포함 X λ¬΄μ§€κ°œμƒ‰ 블둝은 λͺ‡κ°œλ“  상관 X λΈ”λ‘μ˜ κ°œμˆ˜λŠ” 2개 이상 블둝 그룹의 κΈ°μ€€ 블둝 = λ¬΄μ§€κ°œ 블둝이 μ•„λ‹Œ 블둝 μ€‘μ—μ„œ ν–‰μ˜ λ²ˆν˜Έκ°€ κ°€μž₯ μž‘μ€ 블둝. κ·ΈλŸ¬ν•œ 블둝이 μ—¬λŸ¬ 개이면 μ—΄μ˜ λ²ˆν˜Έκ°€ κ°€μž₯ μž‘μ€ 블둝 .. μ˜€ν† ν”Œλ ˆμ΄ κΈ°λŠ₯ βž” 블둝 그룹이 없을 λ•Œ..

μ•Œκ³ λ¦¬μ¦˜/πŸ—‚οΈ 정리

Simulation - 2차원 λ‹¬νŒ½μ΄ λ°°μ—΄ 🐌

2차원 λ°°μ—΄μ—μ„œ λ‹¬νŒ½μ΄λ‘œ μ΄λ™ν•˜λŠ” 방법을 μ •λ¦¬ν•œλ‹€. 🐌 μ‹œμž‘ν•˜λŠ” κ³³μ—μ„œ μƒν•˜μ’Œμš° λ°©ν–₯ (λ°˜μ‹œκ³„ λ˜λŠ” μ‹œκ³„λ°©ν–₯)에 따라 λ‹¬νŒ½μ΄ λ°°μ—΄μ˜ ν˜•νƒœκ°€ 달라진닀. λ°°μ—΄ 쀑앙 (N/2, N/2) μ—μ„œλΆ€ν„° μ‹œμž‘ 쀑앙(N/2, N/2)μ—μ„œλΆ€ν„° μ‹œμž‘ν•΄μ•Όν•˜λ―€λ‘œ N이 ν™€μˆ˜μ΄μ–΄μ•Ό ν•œλ‹€. ←, ↓일 λ•ŒλŠ” 1, 3, 5, 7 .... 만큼 μ΄λ™ν•˜λŠ” 칸이 μ¦κ°€ν•œλ‹€. →, ↑일 λ•ŒλŠ” 2, 4, 6, 8 .... 만큼 μ΄λ™ν•˜λŠ” 칸이 μ¦κ°€ν•œλ‹€. 2번 λ°©ν–₯을 λ°”κΏ€ λ•Œλ§ˆλ‹€ μ΄λ™ν•˜λŠ” 칸을 μ¦κ°€μ‹œν‚¨λ‹€. πŸ‘‰ moveCnt++ ν˜„μž¬λŠ” μ€‘μ•™μ—μ„œ μ™Όμͺ½λ°©ν–₯으둜 μ‹œμž‘ν•΄μ„œ λ°˜μ‹œκ³„λ°©ν–₯으둜 돌고 μžˆμ§€λ§Œ, μ™Όμͺ½ 외에 상, ν•˜, 우 λ°©ν–₯으둜 μ‹œμž‘ν•΄μ„œ λ°˜μ‹œκ³„ λ˜λŠ” μ‹œκ³„λ°©ν–₯으둜 κ°€λŠ” 것도 λ™μΌν•œ λ°©λ²•μœΌλ‘œ μ§„ν–‰ν•˜λ©΄ λœλ‹€. λ°©ν–₯을 두 κ°œμ”© 짝만 지어주면 κ°€λŠ₯ ! impor..

μ•Œκ³ λ¦¬μ¦˜/πŸ—‚οΈ 정리

DP - Knapsack (λ°°λ‚­λ¬Έμ œ)

https://www.acmicpc.net/problem/12865 12865번: ν‰λ²”ν•œ λ°°λ‚­ 첫 쀄에 λ¬Όν’ˆμ˜ 수 N(1 ≤ N ≤ 100)κ³Ό μ€€μ„œκ°€ 버틸 수 μžˆλŠ” 무게 K(1 ≤ K ≤ 100,000)κ°€ 주어진닀. 두 번째 쀄뢀터 N개의 쀄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 ν•΄λ‹Ή 물건의 κ°€μΉ˜ V(0 ≤ V ≤ 1,000) www.acmicpc.net πŸ•ΉοΈ Knapsack μ•Œκ³ λ¦¬μ¦˜ κ³Όμ • DP 문제 쀑 ν•˜λ‚˜λ‘œ, λ°°λ‚­μ˜ 크기 k와 n개의 물건의 무게(w)와 κ°€μΉ˜(v)κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 가방에 물건을 k에 λ„˜μ§€ μ•Šλ„λ‘ λ„£κ³  μ΅œλŒ€ κ°€μΉ˜μ˜ 합을 κ΅¬ν•˜λŠ” λ¬Έμ œμ΄λ‹€. ex) λ°°λ‚­μ˜ ν¬κΈ°λŠ” k이고, 5개의 물건의 λ¬΄κ²Œμ™€ κ°€μΉ˜κ°€ λ‹€μŒκ³Ό 같이 μ£Όμ–΄μ‘Œμ„ λ•Œ, μ΅œλŒ€ κ°€μΉ˜μ˜ 합을 κ΅¬ν•˜κΈ° 물건 1 : w =..

soogoori
πŸƒπŸ»‍β™€οΈμŠ€ν…λ°”μ΄μŠ€ν…