์ „์ฒด ๊ธ€

๐Ÿ“‚๋ฐฑ์—”๋“œ : BackEnd

๋กœ๊น…

๋กœ๊น…์ด ์™œ ํ•„์š”ํ• ๊นŒ?๋ฐฐํฌํ™˜๊ฒฝ์—์„œ ๋™์ž‘ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.๊ธฐ์กด์˜ System.out.println(), System.err.println()๊ณผ ๊ฐ™์€ ํ”Œ๋กœ์šฐ๋กœ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.๋กœ๊น…์ด ๊ธฐ๋กํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์‚ฌํ•ญ์„œ๋น„์Šค ๋™์ž‘ ์ƒํƒœ์žฅ์• (exceptino || error)๋กœ๊น… ํ”„๋ ˆ์ž„์›ŒํฌSLF4JLogbackLog4jnlogSystem.out.println()๋ณด๋‹ค ์ข‹์€ ์ ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ ์„ค์ •ํ•˜์—ฌ ๋‚จ๊ธฐ๊ณ  ์‹ถ์€ ๋กœ๊ทธ๋ฅผ ๋ณ„๋„๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ๊ฐœ๋ฐœ ์„œ๋ฒ„์—์„œ๋Š” ๋ชจ๋“  ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์šด์˜์„œ๋ฒ„์—์„œ๋Š” ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š” ๋“ฑ ๋กœ๊ทธ๋ฅผ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค์ฝ˜์†” ๋ฟ ์•„๋‹ˆ๋ผ, ํŒŒ์ผ์ด๋‚˜ ๋„คํŠธ์›Œํฌ๋“ฑ ๋กœ๊ทธ๋ฅผ ๋ณ„๋„์˜ ์œ„์น˜์— ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Œ์„ฑ๋Šฅ๋„ System.out.println()๋ณด๋‹ค ์ข‹์Œ!๋กœ๊ทธ๋ ˆ๋ฒจ(Fatal..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

[PCCP ๊ธฐ์ถœ๋ฌธ์ œ] 2๋ฒˆ / ์„์œ  ์‹œ์ถ”

๋ฌธ์ œ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/250136# ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr ํ’€์ด๊ณผ์ •๊ฐ ์—ด ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉฐ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์ด๋ฏธ ๊ณ„์‚ฐ ๋œ ์˜์—ญ์€ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์ œ์ด์…˜์„ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์ œ์ด์…˜์„ ์œ„ํ•ด ์˜์—ญ๋ฒŒ ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํ•˜๊ณ  HashMap์„ ํ™œ์šฉํ•ด ๊ทธ ํฌ๊ธฐ๋ฅผ ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์ œ์ด์…˜1. ์„์œ ์ธ ์˜์—ญ(1)์„ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด, ํ•ด๋‹น ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ bfs๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์˜์—ญ๋ณ„ ๋ฒˆํ˜ธ (์ €๋Š” -1,-2,-3 ... ์Œ์ˆ˜๋กœ ํ‘œ..

๐Ÿ“‚์ปดํ“จํ„ฐ๊ณผํ•™:CS

OSI 7 Layer

1๊ณ„์ธต (Physical Layer, ๋ฌผ๋ฆฌ๊ณ„์ธต)์ง์ ‘ ์ „์„ ์œผ๋กœ ์ „๊ธฐ์  ์‹ ํ˜ธ๊ฐ€ ์ „๋‹ฌ๋˜๋Š” ๊ณ„์ธต๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ํ†ต์‹ ํ•˜๋ ค๋ฉด?๋ชจ๋“  ํŒŒ์ผ๊ณผ ํ”„๋กœ๊ทธ๋žจ์€ 0๊ณผ 1์˜ ๋‚˜์—ด์ด๋‹ค.๊ฒฐ๊ตญ 0๊ณผ 1๋งŒ ์ฃผ๊ณ ๋ง์„ ์ˆ˜ ์žˆ์œผ๋ฉด ๋œ๋‹ค.0๊ณผ 1์˜ ๋‚˜์—ด์„ ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๋กœ ๋ฐ”๊พธ์–ด ์ „์„ ์œผ๋กœ ํ˜๋ ค ๋ณด๋‚ด๊ณ (encoding), ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด 0๊ณผ 1์˜ ๋‚˜์—ด๋กœ ํ•ด์„ํ•˜์—ฌ(decoding) ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ 0๊ณผ 1์˜ ๋‚˜์—ด์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ(module)1๊ณ„์ธต ๋ชจ๋“ˆ์€ ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์Œ2๊ณ„์ธต (DataLink Layer, ๋ฐ์ดํ„ฐ๋งํฌ๊ณ„์ธต)๋„คํŠธ์›Œํฌ ๊ธฐ๊ธฐ๋“ค ๊ฐ„ ์–ด๋–ป๊ฒŒ ํ†ต์‹ ํ•˜๋Š”์ง€ ๋งž์ถฐ์ฃผ๋Š” ๊ณ„์ธต1๊ณ„์ธต์˜ ๊ธฐ์ˆ ๋งŒ์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ํ†ต์‹ ํ•˜์ง€ ๋ชปํ•จ์Šค์œ„์น˜, ๋ผ์šฐํ„ฐ ๋ฅผ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ์Œ๊ฐ™์€ ..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

์™•์‹ค์˜ ๊ธฐ์‚ฌ ๋Œ€๊ฒฐ(์‚ผ์„ฑ sw์—ญ๋Ÿ‰ํ…Œ์ŠคํŠธ)

https://www.codetree.ai/training-field/frequent-problems/problems/royal-knight-duel/description?page=1&pageSize=20 ๊ตฌํ˜„ + bfsํ’€์ด๊ณผ์ •0. ๋ชจ๋“ˆํ™”๋œ ํ•จ์ˆ˜๋ฅผ ๋‹ค ํ˜ธ์ถœํ•˜๋Š” solveํ•จ์ˆ˜.static void solve(int n,int d) { if(knights[n].isOut) return; // 1. ํ•ด๋‹น ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜๊ธฐ if(!movable(n,d)) return; // 2. ์ด๋™์‹œํ‚ค๊ธฐ moved = new boolean[N+1]; move(n, d); moved[n] = false; // ๋ช…๋ น๋ฐ›์€ n๋ฒˆ ๊ธฐ์‚ฌ๋Š” ์›€์ง์ž„์—์„œ ์ œ์™ธ // 3. ๋ฐ๋ฏธ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ (๋ช…๋ น์„ ๋ฐ›์€..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

๋ฃจ๋Œํ”„์˜ ๋ฐ˜๋ž€(์‚ผ์„ฑ sw์—ญ๋Ÿ‰ํ…Œ์ŠคํŠธ)

https://www.codetree.ai/training-field/frequent-problems/problems/rudolph-rebellion/description?page=1&pageSize=20 ์ฝ”๋“œํŠธ๋ฆฌ | ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •์„ ๊ตญ๊ฐ€๋Œ€ํ‘œ๊ฐ€ ๋งŒ๋“  ์ฝ”๋”ฉ ๊ณต๋ถ€์˜ ๊ฐ€์ด๋“œ๋ถ ์ฝ”๋”ฉ ์™•์ดˆ๋ณด๋ถ€ํ„ฐ ๊ฟˆ์˜ ์ง์žฅ ์ฝ”ํ…Œ ํ•ฉ๊ฒฉ๊นŒ์ง€, ๊ตญ๊ฐ€๋Œ€ํ‘œ๊ฐ€ ์—„์„ ํ•œ ์ปค๋ฆฌํ˜๋Ÿผ์œผ๋กœ ์ค€๋น„ํ•ด๋ณด์„ธ์š”. www.codetree.ai ํ’€์ด๊ณผ์ • ํ•จ์ˆ˜๋ณ„๋กœ ๋ชจ๋“ˆํ™”๋ฅผ ์ž˜ ์‹œ์ผœ์•ผํ–ˆ์œผ๋ฉฐ, ๊ตฌํ˜„๊ณผ์ •์ด ๋ณต์žกํ•˜๋‹ค ๋ณด๋‹ˆ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ž˜ ์ •ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•œ ํด๋ž˜์Šค์™€ ๋ณ€์ˆ˜ ์ „์ฒด์ ์ธ ์‚ฐํƒ€์™€ ๋ฃจ๋Œํ”„์˜ ์œ„์น˜๋Š” 2์ฐจ์› ๋ฐฐ์—ด(int[][] map)์— ์ •์ˆ˜ํ˜•์œผ๋กœ ์ €์žฅํ•˜๊ณ , ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ 2์ฐจ์› ๋ฐฐ์—ด(int[][] ..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

[๋ฐฑ์ค€] ์›ํŒ ๋Œ๋ฆฌ๊ธฐ

https://www.acmicpc.net/problem/17822 ํ’€์ด๊ณผ์ • 1. ์›ํŒ์„ ํšŒ์ „์‹œํ‚ค๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ArrayList ํ˜น์€ LinkedList๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. add, insert ,remove ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์›ํŒ์˜ ํšŒ์ „์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. ์›ํŒ์—์„œ ์ธ์ ‘ํ•œ ์ˆซ์ž๋“ค ๋ผ๋ฆฌ ์ผ์น˜์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. dfs๋ฅผ ํ†ตํ•ด ์ธ์ ‘์—ฌ๋ถ€๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ ‘ํ•˜๊ฒŒ ๋˜๋ฉด -1๋กœ ์›์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์ฒดํฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฐ™์€ ์›ํŒ ๋‚ด์—์„œ์˜ ์ˆœํšŒ(?)๋ฅผ ๊ตฌํ˜„ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด [2,3,4,2] ์™€ ๊ฐ™์€ ์›ํŒ์ธ ๊ฒฝ์šฐ ์ œ์ผ ์•ž ์›์†Œ 2์™€ ์ œ์ผ ๋’ค ์›์†Œ 2๋Š” ์ธ์ ‘ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ dfs์ˆ˜ํ–‰ ์ค‘ ์ธ๋ฑ์Šค๊ฐ€ -1์ด ๋˜๋ฉด 3์œผ๋กœ, 4๊ฐ€ ๋˜๋ฉด 0์œผ๋กœ ๋ณด์ •์„ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. static bo..

๐Ÿ“‚๋ฐฑ์—”๋“œ : BackEnd

๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ

์˜ˆ์ „ ๋ฑ…ํ‚น ์„œ๋น„์Šค๋ฅผ ์ฃผ์ œ๋กœ ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์ง€๋งŒ, ๋™์‹œ์„ฑ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์ง€ ๋ชป ํ•œ ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ ์ด์Šˆ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• synchronized ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—์„œ๋งŒ ๋™์ž‘. ์ฆ‰ ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ๋Œ€์ด๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋ฒ„์—์„œ ๋™์‹œ์— ์ ‘๊ทผํ•œ๋‹ค๋ฉด synchronized ๋Š” ๊ธฐ๋Šฅ์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์—†๋‹ค. @Transactional ์„ ์‚ฌ์šฉํ•˜๋ฉด, ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹ํ•  ๋•Œ ์ž ๊น์˜ ํ…€์— ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค. Lock (DB์—์„œ ์žฌ๊ณตํ•˜๋Š” ๋ฝ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ) Pessimistic Lock (๋น„๊ด€์  ๋ฝ) row๋‚˜ table ๋‹จ์œ„๋กœ ๋ฝ์„ ๊ฒ€ ์ž์› ์š”์ฒญ์— ๋”ฐ๋ฅธ ๋™์‹œ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ•˜๊ณ  ๋ฝ์„ ๊ฑธ์–ด๋ฒ„๋ฆฌ๋Š” ๋น„๊ด€์  ๋ฝ ๊ณต์œ ๋ฝ(Shared Lock)๊ณผ ๋ฒ ํƒ€๋ฝ..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

[๋ฐฑ์ค€] ์—ฐ๊ตฌ์†Œ 3 (์กฐํ•ฉ, bfs)

https://www.acmicpc.net/problem/17142 ํ’€์ด๊ณผ์ • 0. ์ž…๋ ฅ์„ ๋ฐ›์„ ๋•Œ ์ฑ„์›Œ์•ผ ํ•  ๋นˆ์นธ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. 1. ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ™œ์šฉํ•ด์„œ ๋ฐ”์ด๋Ÿฌ์Šค๋“ค์˜ ์กฐํ•ฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. 2. ์„ ํƒ๋œ ๋ฐ”์ด๋Ÿฌ์Šค๋“ค์— ๋Œ€ํ•ด bfs๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ํผํŠธ๋ฆฝ๋‹ˆ๋‹ค. ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ํผํŠธ๋ฆด ๋•Œ, ๋นˆ์นธ๊ณผ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ์žˆ๋Š” ์นธ์— ๋Œ€ํ•ด ๊ตฌ๋ถ„ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ์นธ์˜ ๊ฒฝ์šฐ 0๋ฒˆ ํ’€์ด๊ณผ์ •์—์„œ ์ €์žฅํ•œ ๋ชฉํ‘œ์™€ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด cnt๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ ์ค๋‹ˆ๋‹ค. ๋ฐ”์ด๋Ÿฌ์Šค์˜ ๊ฒฝ์šฐ cnt ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค์ง€ ์•Š๊ณ  ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ์™€ bfsํ์— ๋„ฃ๋Š” ๋™์ž‘๋งŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” swea์˜ ์ง€๋ขฐ๋ฌธ์ œ์™€ ํ—ท๊ฐˆ๋ ค์„œ ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ๋งŒ๋‚˜๋ฉด ๊ณ„์† ํผ์ง€๋„๋ก ๊ตฌํ˜„ํ•ด์„œ ๊ณ„์† ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค ใ… ใ…  3. ๋นˆ ์นธ์„ ๋‹ค ์ฑ„์› ์œผ๋ฉด ์ด๋™ํ•œ ์‹œ๊ฐ„์„ return ํ•ฉ๋‹ˆ๋‹ค. bfs์—์„œ ์‹œ๊ฐ„์€ ๊ณ„์†..

mc.thd
song