[c++] BOJ 1501 :: ์˜์–ด ์ฝ๊ธฐ
Algorithm ๋ฌธ์ œ/BOJ 2021. 10. 7. 20:22

๋ฌธ์ œ [์˜์–ด ์ฝ๊ธฐ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ] 1501๋ฒˆ: ์˜์–ด ์ฝ๊ธฐ ์ฒซ์งธ ์ค„์— ์‚ฌ์ „์— ์žˆ๋Š” ๋‹จ์–ด๋“ค์˜ ๊ฐœ์ˆ˜ N(0 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ์ค„์— ํ•˜๋‚˜์”ฉ, ์˜์–ด ์‚ฌ์ „์— ์žˆ๋Š” ๋‹จ์–ด๋“ค์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 100์ž๋ฅผ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค์Œ ์ค„์— www.acmicpc.net ํ˜น์‹œ ์ธํ„ฐ๋„ท์„ ํ•˜๋‹ค๊ฐ€, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์˜ ๋ฌธ์žฅ์„ ๋ณธ ์ ์ด ์žˆ๋Š”๊ฐ€? It is itnersetnig taht pepole can raed smoe grabeld wrods. ์›๋ž˜์˜ ๋ฌธ์žฅ์€ 'It is interesting that people can read some garbled words'์ด๋‹ค. ๊ฐ๊ฐ์˜ ๋‹จ์–ด๋“ค์€ ์ œ์ผ ์ฒซ ๋ฌธ์ž์™€ ์ œ์ผ ๋ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ˆœ์„œ๊ฐ€ ๋’ค์„ž์—ฌ ์žˆ๋‹ค. ํ•œ ๋Œ€ํ•™์—์„œ ์‹œํ–‰ํ•œ ์—ฐ๊ตฌ ์กฐ์‚ฌ ๊ฒฐ๊ณผ์—..

[c++] BOJ 1253 :: ์ข‹๋‹ค
Algorithm ๋ฌธ์ œ/BOJ 2021. 9. 28. 19:51

๋ฌธ์ œ ์ข‹๋‹ค ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ N๊ฐœ์˜ ์ˆ˜ ์ค‘์—์„œ ์–ด๋–ค ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ์ˆ˜ ๋‘ ๊ฐœ์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ ์ˆ˜๋ฅผ “์ข‹๋‹ค(GOOD)”๊ณ  ํ•œ๋‹ค. N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๊ทธ ์ค‘์—์„œ ์ข‹์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋Š” ๋ช‡ ๊ฐœ์ธ์ง€ ์ถœ๋ ฅํ•˜๋ผ. ์ˆ˜์˜ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅด๋ฉด ๊ฐ’์ด ๊ฐ™์•„๋„ ๋‹ค๋ฅธ ์ˆ˜์ด๋‹ค. ํ’€์ด ์ฒ˜์Œ์— ์ƒ๊ฐํ–ˆ๋˜ ๋ฐฉ๋ฒ•์€ ์ฃผ์–ด์ง„ ์ˆซ์ž๋“ค์„ for๋ฌธ 3์ค‘์œผ๋กœ ๋Œ๋ฉด์„œ ๋‘ ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ž…๋ ฅ์ด ํฌ์ง€ ์•Š์•„์„œ ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜์˜€๊ณ  ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ฐพ์œผ๋ ค๋Š” ์ˆซ์ž๋ณด๋‹ค ์ž‘์€ ์ˆ˜๋“ค๋งŒ ๊ณ ๋ คํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ์—์„œ ์Œ์ˆ˜๊นŒ์ง€ ๋ฒ”์œ„์— ๋“ค์–ด๊ฐ€๋ฏ€๋กœ target์ด ๋œ ์ˆ˜๋ณด๋‹ค ํฐ ์ˆ˜์— ์Œ์ˆ˜๊ฐ€ ๋”ํ•ด์ ธ์„œ target์ธ ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์–ด์ฐจํ”ผ ์ž…๋ ฅ์ด 10^3 ๋ฐ–์— ๋˜์ง€ ์•Š์œผ๋‹ˆ ์ฃผ์–ด์ง„ ์ˆซ์ž๋“ค ์ค‘ 2๊ฐœ์”ฉ ๊ณจ๋ผ์„œ..

[c++] BOJ 4195 :: ์นœ๊ตฌ ๋„คํŠธ์›Œํฌ
Algorithm ๋ฌธ์ œ/BOJ 2021. 9. 28. 19:49

๋ฌธ์ œ ์นœ๊ตฌ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋ฏผํ˜์ด๋Š” ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์‚ฌ์ดํŠธ์—์„œ ์นœ๊ตฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” ์นœ๊ตฌ์ด๋‹ค. ์šฐํ‘œ๋ฅผ ๋ชจ์œผ๋Š” ์ทจ๋ฏธ๊ฐ€ ์žˆ๋“ฏ์ด, ๋ฏผํ˜์ด๋Š” ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์‚ฌ์ดํŠธ์—์„œ ์นœ๊ตฌ๋ฅผ ๋ชจ์œผ๋Š” ๊ฒƒ์ด ์ทจ๋ฏธ์ด๋‹ค. ์–ด๋–ค ์‚ฌ์ดํŠธ์˜ ์นœ๊ตฌ ๊ด€๊ณ„๊ฐ€ ์ƒ๊ธด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‘ ์‚ฌ๋žŒ์˜ ์นœ๊ตฌ ๋„คํŠธ์›Œํฌ์— ๋ช‡ ๋ช…์ด ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์นœ๊ตฌ ๋„คํŠธ์›Œํฌ๋ž€ ์นœ๊ตฌ ๊ด€๊ณ„๋งŒ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ด๋ฅผ ๋งํ•œ๋‹ค. ํ’€์ด ํŠน์ • ์ด๋ฆ„์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ํ•ด๋‹น ์ด๋ฆ„์ด ์†ํ•œ ๊ทธ๋ฃน์„ ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ํ•ด๋‹น ๊ทธ๋ฃน์— ์žˆ๋Š” ์ด๋ฆ„์˜ ๊ฐœ์ˆ˜๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋ฆ„์ด ์†ํ•œ ๊ทธ๋ฃน์„ ๋ฐ”๋กœ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” map๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ๊ทธ๋ฃน์— ์žˆ๋Š” ์ด๋ฆ„์˜ ๊ฐœ์ˆ˜๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. set group[..

Javascript ๊ธฐ๋ณธ :: declare (Typescript์—์„œ type ์—†์„ ๋•Œ)
์›น (WEB)/๊ณต๋ถ€ 2021. 9. 22. 14:15

๋งŒ์ผ Typescript๋กœ ๊ฐœ๋ฐœํ•˜๋˜ ์ค‘์— ์•„์ฃผ ์ž˜ ์ž‘์„ฑ๋œ JS ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ์™€์„œ ์“ฐ๊ณ ์ž ํ•œ๋‹ค๋ฉด, ํ•ด๋‹น ๋ชจ๋“ˆ ๋‚ด์˜ ํ•จ์ˆ˜๋Š” typescript๋กœ ์ •์˜๋˜์–ด์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค. ๋ชจ๋“ˆ์ด ํ•ด๋‹น ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์—๋„ type์ด ์ •ํ•ด์ ธ์žˆ์ง€ ์•Š์•„์„œ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๊ณ  ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด declare ํ‚ค์›Œ๋“œ๋ฅผ ์จ์„œ ์ •์˜ํ•ด๋‘๋ฉด type์ด ์ธ์‹๋˜์–ด typescript compiler๊ฐ€ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. declare let module: any ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ "์ด๊ฑด ์ด๋ฏธ ์กด์žฌํ•˜๊ณ  ๋‹ค๋ฅธ ์ฝ”๋“œ์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค."๋ผ๊ณ  ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

CommonJS vs ES Modules
์›น (WEB)/๊ณต๋ถ€ 2021. 9. 22. 13:57

๋ฐฐ๊ฒฝ ํ•จ์ˆ˜๋“ค๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ์ „์—ญ ์Šค์ฝ”ํ”„์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋‘”๋‹ค๋ฉด ๋‹ค๋ฅธ ๋‚ด๋ถ€ ์š”์†Œ์— ์˜ํ•ด ๋ง๊ฐ€์งˆ ์ˆ˜๋„ ์žˆ๊ณ , ์ˆœ์„œ๊ฐ€ ๋’ค์—‰์ผœ ์ „์—ญ ์Šค์ฝ”ํ”„์˜ ์š”์†Œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“ˆ์ด๋ผ๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋ฉด ๊ฐ๊ฐ ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ importํ•˜์—ฌ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์–ด๋””์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š”์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ๋‹ค. ๋ชจ๋“ˆ์„ ๋งŒ๋“ค๊ณ  import, export ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์ด๋ผ ํ•˜๋Š”๋ฐ ํ˜„์žฌ 2๊ฐ€์ง€์˜ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์ด ํ™œ๋ฐœํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. CommonJS ES modules ์ฐจ์ด์  ๊ธฐ์ดˆ ๋ฌธ๋ฒ• CommonJS const module = require('์–ด์ฉŒ๊ตฌ'); const { func } = require('์–ด์ฉŒ๊ตฌ'); module.exports = '์–ด์ฉŒ๊ตฌ'; // default export..

React context ์ฝ”๋“œ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ :: ๋ฆฌํŒฉํ† ๋ง
์›น (WEB)/๊ณต๋ถ€ 2021. 9. 21. 14:11

๋ฌธ์ œ ์ƒํ™ฉ React context ์‚ฌ์šฉ ์‹œ ๊ธฐ์กด ์ฝ”๋“œ ๊ตฌ์„ฑ์ด context ๋‚ด๋ถ€ ์š”์†Œ๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜๋ก ๋ณต์žกํ•ด์ ธ์„œ ๋ฆฌํŒฉํ† ๋งํ•˜๋ ค ํ•œ๋‹ค. ๊ธฐ์กด ๊ตฌํ˜„ // ๊ตฌ์„ฑ const UserContext = createContext({}); const SignInContext = createContextvoid>(()=>{}); export const UserContextProvider = ({ children }) => { const [user, setUser] = useState(); const signIn = () => {}; return ( {children} ); } export function useUserState() { const context = useContext(UserContext); return c..

[c++] BOJ 5430 :: AC
Algorithm ๋ฌธ์ œ/BOJ 2021. 9. 7. 16:29

๋ฌธ์ œ AC ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์„ ์˜์ด๋Š” ์ฃผ๋ง์— ํ•  ์ผ์ด ์—†์–ด์„œ ์ƒˆ๋กœ์šด ์–ธ์–ด AC๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. AC๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด์— ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์–ธ์–ด์ด๋‹ค. ์ด ์–ธ์–ด์—๋Š” ๋‘ ๊ฐ€์ง€ ํ•จ์ˆ˜ R(๋’ค์ง‘๊ธฐ)๊ณผ D(๋ฒ„๋ฆฌ๊ธฐ)๊ฐ€ ์žˆ๋‹ค. ํ•จ์ˆ˜ R์€ ๋ฐฐ์—ด์— ์žˆ๋Š” ์ˆซ์ž์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š” ํ•จ์ˆ˜์ด๊ณ , D๋Š” ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋ฅผ ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ๋Š”๋ฐ D๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ์—๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ํ•จ์ˆ˜๋Š” ์กฐํ•ฉํ•ด์„œ ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "AB"๋Š” A๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ์— ๋ฐ”๋กœ ์ด์–ด์„œ B๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "RDD"๋Š” ๋ฐฐ์—ด์„ ๋’ค์ง‘์€ ๋‹ค์Œ ์ฒ˜์Œ ๋‘ ์ˆซ์ž๋ฅผ ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐ๊ฐ’๊ณผ ์ˆ˜ํ–‰ํ•  ํ•จ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ํ’€์ด ๊ทธ๋ƒฅ ๊ตฌํ˜„ ๋ฌธ์ œ string ํ•จ์ˆ˜๋ฅผ ์ตœ๋Œ€ํ•œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„..

[c++] BOJ 14725 :: ๊ฐœ๋ฏธ๊ตด
Algorithm ๋ฌธ์ œ/BOJ 2021. 9. 7. 16:28

๋ฌธ์ œ ๊ฐœ๋ฏธ๊ตด ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 14725๋ฒˆ: ๊ฐœ๋ฏธ๊ตด ์ฒซ ๋ฒˆ์งธ ์ค„์€ ๋กœ๋ด‡ ๊ฐœ๋ฏธ๊ฐ€ ๊ฐ ์ธต์„ ๋”ฐ๋ผ ๋‚ด๋ ค์˜ค๋ฉด์„œ ์•Œ๊ฒŒ ๋œ ๋จน์ด์˜ ์ •๋ณด ๊ฐœ์ˆ˜ N๊ฐœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1000) ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N+1 ๋ฒˆ์งธ ์ค„๊นŒ์ง€, ๊ฐ ์ค„์˜ ์‹œ์ž‘์€ ๋กœ๋ด‡ ๊ฐœ๋ฏธ ํ•œ๋งˆ๋ฆฌ๊ฐ€ ๋ณด๋‚ด์ค€ ๋จน์ด www.acmicpc.net ํ’€์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ๋ ˆ๋ฒจ ์ˆœํšŒ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์ฝ”๋“œ #include #include #include #include using namespace std; struct Node { string name; vector children; int level; Node(string n, int l) { name = n; level = l; } }; int N; vector burrow; bool compare(Node* ..