[๋ฐฑ์ค€] 11724 : ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ - java [์ž๋ฐ”]

https://www.acmicpc.net/problem/11724 11724๋ฒˆ: ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 1,000, 0 โ‰ค M โ‰ค Nร—(N-1)/2) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฐ„์„ ์˜ ์–‘ ๋์  u์™€ v๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค u, v โ‰ค N, u โ‰  v) ๊ฐ™์€ ๊ฐ„์„ ์€ ํ•œ ๋ฒˆ๋งŒ ์ฃผ www.acmicpc.net ์ดํ•ด ๋ฌธ์ œ ํ’€์ด์— ์•ž์„œ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•ด๋ณด์ž. ์—ฐ๊ฒฐ ์š”์†Œ(Connected Component)๋Š” ์—ฐ๊ฒฐ๋œ ์ •์ ์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. ๋‹ค์Œ ์ด๋ฏธ์ง€์—์„œ์˜ ์—ฐ๊ฒฐ ์š”์†Œ๋Š” 4๊ฐœ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰์„ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ์ •์ ์„ ๋ชจ๋‘ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ๋˜์ง€ ์•Š์€ ์ •์ ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ ์š”์†Œ์ž„์„ ์˜๋ฏธํ•œ๋‹ค. ํ’€์ด ์ „์ฒด ๋…ธ๋“œ(1~N)๋ฅผ ์ˆœํšŒ..

PS/๋ฐฑ์ค€ 2022. 2. 28. 17:24
[๋ฐฑ์ค€] 2252 : ์ค„ ์„ธ์šฐ๊ธฐ - java [์ž๋ฐ”]

https://www.acmicpc.net/problem/2252 2252๋ฒˆ: ์ค„ ์„ธ์šฐ๊ธฐ ์ฒซ์งธ ์ค„์— N(1 โ‰ค N โ‰ค 32,000), M(1 โ‰ค M โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. M์€ ํ‚ค๋ฅผ ๋น„๊ตํ•œ ํšŒ์ˆ˜์ด๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ํ‚ค๋ฅผ ๋น„๊ตํ•œ ๋‘ ํ•™์ƒ์˜ ๋ฒˆํ˜ธ A, B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋Š” ํ•™์ƒ A๊ฐ€ ํ•™์ƒ B์˜ ์•ž์— ์„œ์•ผ ํ•œ๋‹ค๋Š” ์˜ www.acmicpc.net ํ’€์ด "์—ฐ๊ฒฐ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„ N๋ช…์˜ ํ•™์ƒ ์ค„ ์„ธ์šฐ๊ธฐ"๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค. => ์—ฐ๊ฒฐ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„ ์ˆœํ™˜ํ•˜์ง€ ์•Š๋Š” ๋ฐฉํ–ฅ์„ฑ ๊ทธ๋ž˜ํ”„(DAG=๋ฐฉํ–ฅ์„ฑ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„)์—์„œ ๊ฐ ๋…ธ๋“œ๋ฅผ ์ค„ ์„ธ์šฐ์‹œ์˜ค. ์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์œ„์ƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์ผ์น˜ํ•˜๋ฏ€๋กœ ์œ„์ƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด ํ’€์ดํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ ๋…ธ๋“œ์˜ ์—ฐ๊ฒฐ ๋‹นํ•œ ์ •๋ณด๋ฅผ linked ๋ฐฐ์—ด์— ๋ฏธ๋ฆฌ ์ž…๋ ฅ ํ›„ ..

PS/๋ฐฑ์ค€ 2022. 2. 27. 12:06
[๋ฐฑ์ค€] 2805 : ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ - java [์ž๋ฐ”]

https://www.acmicpc.net/problem/2805 2805๋ฒˆ: ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ ์ฒซ์งธ ์ค„์— ๋‚˜๋ฌด์˜ ์ˆ˜ N๊ณผ ์ƒ๊ทผ์ด๊ฐ€ ์ง‘์œผ๋กœ ๊ฐ€์ ธ๊ฐ€๋ ค๊ณ  ํ•˜๋Š” ๋‚˜๋ฌด์˜ ๊ธธ์ด M์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 1,000,000, 1 โ‰ค M โ‰ค 2,000,000,000) ๋‘˜์งธ ์ค„์—๋Š” ๋‚˜๋ฌด์˜ ๋†’์ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‚˜๋ฌด์˜ ๋†’์ด์˜ ํ•ฉ์€ ํ•ญ์ƒ M๋ณด www.acmicpc.net ์ด ๊ธ€์€ ์ด๋ถ„ํƒ์ƒ‰์„ ์ด๋ฏธ ์•Œ๊ณ ์žˆ๋Š” ์‚ฌ๋žŒ์„ ๋Œ€์ƒ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์„ ์ด์šฉํ•ด ์ตœ์ ์˜ ๊ฐ’์„ ์ฐพ์•„๋‚ธ๋‹ค. ์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ์—์„œ๋Š” ๊ตฌํ•ด์•ผํ•˜๋Š” ๊ฐ’์„ ์ฐพ๊ณ  ํ•ด๋‹น ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ’€์ดํ•œ๋‹ค. ๋ณดํ†ต ์ •๋‹ต์„ ์š”๊ตฌํ•˜๋Š” ๊ฐ’๊ณผ ์ผ์น˜ํ•œ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ์—์„œ๋Š” K(์ ˆ๋‹จ๊ธฐ์— ์„ค์ •ํ•  ๋†’์ด์˜ ์ตœ๋Œ“๊ฐ’)์ด ๊ธฐ์ค€ ๊ฐ’์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€ํ™”ํ•˜๋Š” K๋ฅผ ๊ธฐ์ค€์œผ๋กœ totalSlicedHeight(์ž˜๋ ค์ง„ ๋‚˜๋ฌด ๊ธธ์ด์˜..

PS/๋ฐฑ์ค€ 2022. 2. 26. 20:02
[nestjs] log๋ฅผ ๋‚จ๊ฒจ๋ณด์ž - winston

nestjs๋กœ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ winston์„ ์ด์šฉํ•ด logging์„ ์ ์šฉํ•œ ๊ฒฝํ—˜์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ˆœ์„œ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. http-logger-middleware ์ ์šฉ (morgan X) nest-winston + winston-daily-rotate-file log๋ฅผ ๋‚จ๊ฒจ์•ผํ•˜๋Š” ์ด์œ  log๋ฅผ ๋‚จ๊ฒจ์•ผํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์–‘ํ•˜๊ฒ ์ง€๋งŒ ๋‚ด๊ฐ€ ํ•ด๋‹น ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ์—์„œ log๋ฅผ ๋‚จ๊ฒจ์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ณดํ†ต ํ”ผ๋“œ๋ฐฑ๊ณผ ๊ด€๋ จ๋œ ๋‚ด์šฉ์ด๋‹ค. ์•ˆ์ •๋œ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด log๋ฅผ ํ†ตํ•œ ์„œ๋น„์Šค ์ƒํƒœ ๋ฐ ๋กœ์ง์„ ์ถ”์  error ๋ฐœ์ƒ ์‹œ์— error ์ƒํ™ฉ ์ถ”์  file ํ˜•ํƒœ๋กœ log๋ฅผ ๋‚จ๊ฒจ ์œ„ ๊ณผ์ •์„ ์ข€ ๋” ์œ ์—ฐํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋กœ๊ทธ๋ฅผ ํ™œ์šฉํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ํ™˜๊ฒฝ ๊ตฌ์ถ• http-logger-middleware ์ ์šฉํ•˜๊ธฐ ๋จผ์ €,..

nodejs/nestjs 2022. 2. 21. 02:55
2021๋…„์„ ๋งˆ์น˜๋ฉฐ, 2022๋…„์„ ๋งž์ดํ•˜๋ฉฐ.

์–ด๋Š๋ง 2021๋…„์ด ์ง€๋‚˜๊ฐ€๊ณ , 2022๋…„์ด๋‹ค. ์‹œ๊ฐ„์ด ์™œ ์ด๋ ‡๊ฒŒ ๋น ๋ฅธ์ง€,, ๋Œ์•„๋ณด๋ฉด ์ •๋ง ๋งŽ์€ ๊ฒƒ๋“ค์„ ํ–ˆ๊ณ , ๋„ˆ๋ฌด ๊ณ ์ƒํ–ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ๋งˆ์Œ ํ•œ ์ผ ์—๋Š” ์•„์‰ฌ์›€์ด ๋งŽ์ด ๋‚จ๋Š”๋‹ค. ๊ทธ๋ž˜์„œ 2021๋…„์„ ์ƒ๋ฐ˜๊ธฐ์™€ ํ•˜๋ฐ˜๊ธฐ๋กœ ๋‚˜๋ˆ„์–ด ๋˜๋Œ์•„๋ณด๋ฉด์„œ ์•„์‰ฌ์›€์„ ๋‹ฌ๋ž˜๊ณ  ์—๋„ˆ์ง€๋ฅผ ์ถฉ์ „ํ•ด๋ณด์ž 2021 ์ƒ๋ฐ˜๊ธฐ 2021 ์ƒ๋ฐ˜๊ธฐ์—๋Š” ํ•™๊ต๋ฅผ ์กธ์—…ํ•˜๊ณ  ์ •๋ณด์ฒ˜๋ฆฌ๋ถ„์•ผ ์‚ฐ์—…๊ธฐ๋Šฅ์š”์›(๋ณ‘์—ญํŠน๋ก€) ์ทจ์—…์„ ์œ„ํ•ด์„œ ์‹œ๊ฐ„์„ ์ „๋ถ€ ๋ณด๋‚ธ ๊ฒƒ ๊ฐ™๋‹ค. ์ทจ์—…์„ ์ค€๋น„ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๋„์ „์„ ํ•ด๋ดค๊ณ , ํ›„ํšŒ๋„ ํ•ด๋ดค๊ณ , ์˜จ์ „ํžˆ ๋‚˜ํ•œํ…Œ ์ง‘์ค‘ํ•ด์„œ ์—๋„ˆ์ง€๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ๋˜ ์‹œ๊ฐ„์ด์—ˆ๋‹ค. ๊ทธ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋‚˜์”ฉ ํ’€์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์กธ์—…์„ ํ•˜๊ณ  ๋‚œ ๋ฐฑ์ˆ˜๊ฐ€ ๋˜์—ˆ๋‹ค 2021๋…„ 2์›”์— ์ง‘ ๊ทผ์ฒ˜์— ์žˆ๋Š” ์„œ์šธ 2๋…„์ œ ์ปด๊ณต๊ณผ๋ฅผ ์กธ์—…ํ•˜๊ณ  ์ „๋ฌธํ•™์‚ฌ์™€ ์ •๋ณด์ฒ˜๋ฆฌ์‚ฐ์—…๊ธฐ์‚ฌ๋ฅผ ๋“ค๊ณ  ์กธ์—…ํ–ˆ๋‹ค. ์ด๋•Œ๊นŒ์ง€ ๋‚œ ๊ทธ๋‹ค์ง€ ์ทจ์—…..

๊ฟˆํ‹€๊ฟˆํ‹€ 2021. 12. 28. 08:20
JPA UUID varchar๋กœ ์ €์žฅํ•˜๊ธฐ

๊ฐœ์š” ํ”„๋กœ์ ํŠธ์—์„œ JPAํ™˜๊ฒฝ์—์„œ UUID๋ฅผ PK๋กœ ๋„์ž…ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ถˆํŽธํ–ˆ๋˜ ์ ๋“ค๊ณผ ๊ฐœ์„ ํ•œ ๊ฒฝํ—˜๋“ค์„ ๊ธฐ๋กํ•œ๋‹ค. UUID๋ž€? + ๋„์ž… ๊ณ ๋ฏผ UUID(๋ฒ”์šฉ ๊ณ ์œ  ์‹๋ณ„์ž(universally unique identifier))๋Š” 128๋น„ํŠธ์˜ ์ˆ˜์ด๋‹ค. ํ‘œ์ค€ ํ˜•์‹์—์„œ UUID๋Š” 32๊ฐœ์˜ 16์ง„์ˆ˜๋กœ ํ‘œํ˜„๋˜๋ฉฐ ์ด 36๊ฐœ ๋ฌธ์ž(32๊ฐœ ๋ฌธ์ž์™€ 4๊ฐœ์˜ ํ•˜์ดํ”ˆ)๋กœ ๋œ 8-4-4-4-12๋ผ๋Š” 5๊ฐœ์˜ ๊ทธ๋ฃน์„ ํ•˜์ดํ”ˆ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ์ด๋ฅผํ…Œ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 550e8400-e29b-41d4-a716-446655440000 ์œ„์—์„œ UUID์— ๋Œ€ํ•ด ์‚ด์ง ์•Œ์•„๋ดค๋‹ค. ํ•„์ž๋Š” UUID๋Š” ๊ฑฐ์˜ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ธ€๋กœ๋ฒŒ ์œ ๋‹ˆํฌ ๊ฐ’์ด๋‹ค ๋ผ๋Š” ๊ฒƒ์— ์ฃผ๋ชฉํ–ˆ๊ณ , React Dom์ด ๋ณ€๊ฒฝ ๊ฐ์ง€๋ฅผ ํ•˜๋Š” ๊ธฐ์ค€์ด key๊ฐ’์ธ๋ฐ key๊ฐ’์€ ์ค‘๋ณต๋˜๊ธฐ ์‰ฝ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ..

Spring 2021. 11. 29. 18:29