10875. ๋ฑ€
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ
Problem ๐Ÿ’ป์ด ๋ฌธ์ œ๋Š” L ≤ 10^8 ์ด๋ฏ€๋กœ 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฑ€์„ ์ด๋™์‹œ์ผœ๊ฐ€๋ฉฐ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋Š” ์•„๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋จธ๋ฆฌ์˜ ํšŒ์ „ ํšŸ์ˆ˜ N์„ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.  Approach 1 โญ•๊ตฌํ˜„ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๋ฑ€์ด ๋จธ๋ฆฌ๋ฅผ 1์ดˆ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ๋Š˜๋ ค๊ฐ€๋ฉฐ ์–ด๋–ค ์‹œ๊ฐ„์—๋Š” ํšŒ์ „๋„ ํ•˜๊ณ  ํ•˜๋ฉด์„œ ์ตœ์ข… ์ฃฝ๋Š” ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ์˜ ์ฃผ์ฒด๋ฅผ ๋ฑ€์ด ์•„๋‹ˆ๋ผ ์‚ฌ๋žŒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ž์‹ ์ด ๊ฐ€๋˜ ๊ฒฝ๋กœ์™€ ๊ฒน์น˜๋Š” ์ˆœ๊ฐ„ ํ˜น์€ ๋ฒ”์œ„์˜ ๋ฐ–์œผ๋กœ ๊ฐ€๋Š” ์ˆœ๊ฐ„ ์ฃฝ๋Š” ๊ฒƒ์œผ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฑ€์€ ์˜ค๋กœ์ง€ ์ˆ˜์ง, ์ˆ˜ํ‰์œผ๋กœ๋งŒ ๋จธ๋ฆฌ๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐฉํ–ฅ์„ ๋ฐ”๊พธ๋Š” ์‹œ๊ฐ„ ์ฐจ์ด์™€ ๋ฐ”๊พธ๋Š” ๋ฐฉํ–ฅ์ด ์ฃผ์–ด์ง€๋ฉด ๋ฐ”๊พธ๋Š” ์‹œ๊ฐ„ ์ „๊นŒ์ง€๋Š” ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ด๋™ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํ•ด๋‹น ๋ฐฉํ–ฅ ์ „๊นŒ์ง€ ํ•˜๋‚˜ํ•˜๋‚˜ ์ด๋™ํ•˜์ง€ ์•Š๊ณ  ๋‹จ๋ฒˆ์— ‘x + time’ ๋˜๋Š” ..
1800. ์ธํ„ฐ๋„ท ์„ค์น˜
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ
Problem ๐Ÿ’ป๊ฒฐ์ • ๋ฌธ์ œ๋กœ ์ด๋ถ„ํƒ์ƒ‰ + ๋‹ค์ต์ŠคํŠธ๋ผ or BFS, DFS๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค.์ปดํ“จํ„ฐ N๊ฐœ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•˜๋Š”๋ฐ, ์–ด๋–ค ๋น„์šฉ X์— ๋Œ€ํ•˜์—ฌ ํ•ด๋‹น ๋น„์šฉ X๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋ˆ์„ ๋‚ด๊ณ , ํฌ๋ฉด ๋ฌด๋ฃŒ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•˜๋„๋ก ๋ฌธ์ œ์˜ ์š”๊ตฌ ์กฐ๊ฑด์„ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค.  Approach 1 โญ•์ด๋ถ„ํƒ์ƒ‰ + ๋‹ค์ต์ŠคํŠธ๋ผ์ด๋ถ„ํƒ์ƒ‰์„ ํ†ตํ•˜์—ฌ ์ตœ์†Œํ•œ์œผ๋กœ ๋‚ด์•ผํ•  ๊ธˆ์•ก์„ ๊ฒฐ์ •ํ•˜๊ณ , ๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ํ†ตํ•ด ๋ฌด๋ฃŒ๋กœ ์—ฐ๊ฒฐํ•œ ํšŸ์ˆ˜๋ฅผ ๊ฐ€์ค‘์น˜๋กœ ํ•˜์—ฌ 1 → N ์ปดํ“จํ„ฐ๋กœ์˜ ์ตœ์†Œ ๋ฌด๋ฃŒ ์—ฐ๊ฒฐ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•œ ๋‹ค์Œ ํ•ด๋‹น ํšŸ์ˆ˜๊ฐ€ k๋ฅผ ๋„˜๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.k๋ฅผ ๋„˜๋Š”๋‹ค๋ฉด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ ๋‹ค์‹œ ๋น„์šฉ์„ ๋” ์ฆ๊ฐ€์‹œ์ผœ๋ณด๊ณ , k๋ฅผ ๋„˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด ๋น„์šฉ์„ ๋” ์ค„์ผ ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•ด์„œ ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด ์ตœ์†Œ 4์˜ ๋น„์šฉ์€ ๋˜์–ด์•ผ..
14658. ํ•˜๋Š˜์—์„œ ๋ณ„๋˜ฅ๋ณ„์ด ๋น—๋ฐœ์นœ๋‹ค
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ
Problem ๐Ÿ’ป๋‹จ์ˆœํ•œ ๋ธŒ๋ฃจํŠธํฌ์Šค ๋ฌธ์ œ์ง€๋งŒ ์–ด๋–ป๊ฒŒ ํ’€์–ด์•ผํ• ์ง€ ์ข€ ๊ณ ๋ฏผํ•ด๋ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. Approach 1 โŒ์ขŒํ‘œ ์™„์ „ ํƒ์ƒ‰๋ณ„ ๊ธฐ์ค€์œผ๋กœ ์™„์ „ ํƒ์ƒ‰์ฒ˜์Œ ํ’€์ด๋Š” 2๊ฐ€์ง€์˜€๋‹ค. ์ขŒํ‘œ ์™„์ „ ํƒ์ƒ‰๊ณผ ๋ณ„ ๊ธฐ์ค€ ์™„์ „ ํƒ์ƒ‰. ์ขŒํ‘œ ์™„์ „ ํƒ์ƒ‰์€ (1, 1)๋ถ€ํ„ฐ (M-L, N-L)๊นŒ์ง€ x ~ x+L, y ~ y+L ์‚ฌ์ด์˜ ๊ฒน์น˜๋Š” ์ขŒํ‘œ๊ฐ€ ์žˆ๋Š”์ง€ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ์ฐพ์•„์„œ ์ตœ๊ณ ๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํ•˜์ง€๋งŒ, ๋ฌธ์ œ์˜ ์กฐ๊ฑด์— N, M์€ ์ตœ๋Œ€ 500,000์œผ๋กœ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ํ•  ๊ฒฝ์šฐ L = 1์ธ ์ตœ์•…์˜ ๊ฒฝ์šฐ 500,000 * 500,000์œผ๋กœ 2500์–ต ๊ฐ€๊นŒ์ด ๋˜๋Š” ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚œ๋‹ค. ๋‹น์—ฐํžˆ ์‹œ๊ฐ„์ดˆ๊ณผ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ƒ๊ฐํ•œ ๋ฐฉ๋ฒ•์ด ๋ณ„ ๊ธฐ์ค€์œผ๋กœ ์™„์ „ ํƒ์ƒ‰์ด๋‹ค. ์ฒ˜์Œ์—” ๋ณ„ ์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ x ~ x+L, y ~ y+L ๊นŒ์ง€ ๊ฒน์น˜๋Š” ๋ณ„..
05. ์ˆœํ™˜ ์ฐธ์กฐ
ยท
๊ฐœ๋ฐœ์„œ์ /์ž๋ฐ”-์Šคํ”„๋ง ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
์ˆœํ™˜ ์ฐธ์กฐ๋Š” ์˜์กด ๊ด€๊ณ„์— ์‚ฌ์ดํด์ด ์ƒ๊ธฐ๋Š” ์ƒํ™ฉ์œผ๋กœ ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ฐ์ฒด๊ฐ€ ์„œ๋กœ ์–‘๋ฐฉํ–ฅ ์ฐธ์กฐ๋ฅผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ๋‹ค. @Dataclass Team { private long id; private String name; private List members;}@Dataclass Member { private long id; private String name; private Team myTeam;}@Data@NoArgsConstructor@Entity(name = "team")class TeamJpaEntity { @Id private String id; @Column private String name; @OneToMany(mappedBy = "myTeam") private List members;}@Data@No..
1863. ์Šค์นด์ด๋ผ์ธ ์‰ฌ์šด๊ฑฐ
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ
Problem ๐Ÿ’ป1863. ์Šค์นด์ด๋ผ์ธ ์‰ฌ์šด๊ฑฐ ์ž…๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Šค์นด์ด๋ผ์ธ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค................................XX.........XXX........XXX.XX.......XXXXXXX.....XXXXXXXXXX....XXXXXXXXXXXX ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ์„ฏ ๊ฐœ์˜ ๋นŒ๋”ฉ์ด ์žˆ์„ ๋•Œ๊ฐ€ ์ตœ์†Œ ๊ฐœ์ˆ˜์˜ ๋นŒ๋”ฉ์ด ์žˆ๋Š” ์ƒํ™ฉ์ด๋‹ค................................22.........333........111.22.......XX333XX.....X111X22XXX....XX333XXXXXXX...............................XX.........XXX........XXX.XX.......5555555.....4444444444....555555..
04. SOLID
ยท
๊ฐœ๋ฐœ์„œ์ /์ž๋ฐ”-์Šคํ”„๋ง ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP; Single Responsibility Principle)๊ฐœ๋ฐฉ ํ์‡„ ์›์น™(OCP; Open-Closed Principle)๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™(LSP; Liskov Substitution Principle)์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™(ISP; Interface Segregation Principle)์˜์กด์„ฑ ์—ญ์ „ ์›์น™(DIP; Dependency Inversion Principle)๊ฐ ์›์น™์€ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—์„œ ์ข‹์€ ์„ค๊ณ„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ง€์ผœ์•ผ ํ•  ๊ทœ๋ฒ”์ด๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ, ํ™•์žฅ์„ฑ์„ ๋†’์ด๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค.์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํŒ๋‹จํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋ฌด์ ์ธ ์„ธ ๊ฐ€์ง€ ๋งฅ๋ฝ์ด ์žˆ๋‹ค.์˜ํ–ฅ ๋ฒ”์œ„: ์ฝ”๋“œ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ ์˜ํ–ฅ ๋ฒ”์œ„๊ฐ€ ์–ด๋–ค์ง€์˜์กด์„ฑ: ์†Œํ”„ํŠธ์›จ์–ด์˜ ์˜์กด์„ฑ ๊ด€๋ฆฌ๊ฐ€ ์ œ๋Œ€๋กœ ์ด๋ค„์ง€๋Š”์ง€ํ™•์žฅ์„ฑ:..
4485. ๋…น์ƒ‰ ์˜ท ์ž…์€ ์• ๊ฐ€ ์ ค๋‹ค์ง€?
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ
Problem ๐Ÿ’ป4485. ๋…น์ƒ‰ ์˜ท ์ž…์€ ์• ๊ฐ€ ์ ค๋‹ค์ง€? ๋งํฌ๊ฐ€ ‘๋„๋‘‘๋ฃจํ”ผ’๋กœ ๊ฐ€๋“์ฐฌ ๋™๊ตด์—์„œ (0, 0) → (n-1, n-1)๊นŒ์ง€ ์ตœ์†Œํ•œ์˜ ๋ฃจํ”ผ๋ฅผ ์žƒ์œผ๋ฉด์„œ ๋„์ฐฉํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋™๊ตด์˜ ๊ฐ ์นธ๋งˆ๋‹ค ๋„๋‘‘๋ฃจํ”ผ์˜ ๊ฐ€์น˜๊ฐ€ ์ฃผ์–ด์ง€๊ณ  ํ•ด๋‹น ๊ฐ€์น˜๊ฐ€ ํด์ˆ˜๋ก ์žƒ๋Š” ๋ˆ์ด ๋งŽ์•„์ง€๋Š” ๊ฒƒ์ด๋‹ค. Approach 1 โญ•๋‹ค์ต์ŠคํŠธ๋ผ (00:13:12) ์ด ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ‘๋„๋‘‘๋ฃจํ”ผ’๋ฅผ ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฐํ•ด ํ•ด๋‹น ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ‘๊ฐ€์ค‘์น˜’๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๋ชจ๋“  ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ๋„๋‘‘๋ฃจํ”ผ์˜ ๊ฐ€์น˜๋กœ ๊ณ ์ •๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿผ, ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ‘๋‹ค์ต์ŠคํŠธ๋ผ’๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. Approach 2 โญ•BFS (00:10:27) ๋‘ ๋ฒˆ์งธ๋กœ๋Š” BFS๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ..
1238. ํŒŒํ‹ฐ
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ
๋ฌธ์ œhttps://www.acmicpc.net/problem/1238 ์ ‘๊ทผ 1 โญ•ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ (00:21:37)๊ฐ๊ฐ์˜ 1~N๋ฒˆ ๋งˆ์„์— ์‚ด๊ณ  ์žˆ๋Š” ํ•™์ƒ๋“ค์ด X๋ฒˆ ๋งˆ์„์„ ์™•๋ณตํ•  ๋•Œ ๊ฐ€์žฅ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ํ•™์ƒ์ด ๋ˆ„๊ตฐ์ง€ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฆ‰, 1~N๋ฒˆ ๋งˆ์„์—์„œ X๋ฒˆ ๋งˆ์„๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ณ , X๋ฒˆ ๋งˆ์„์—์„œ 1~N๋ฒˆ ๋งˆ์„๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•œ ๋‹ค์Œ์— 1↔X, 2↔X, …, N↔X ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‘ ๊ฐ€์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ํ•œ๋ฒˆ์— ๊ตฌํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ‘ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ’์ด๋‹ค. ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ์€ ๋ชจ๋“  ์ •์ ์—์„œ ์‹œ์ž‘ํ•ด ๋ชจ๋“  ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค! ์ ‘๊ทผ 2 ๐Ÿ”บ๋‹ค์ต์ŠคํŠธ๋ผ (00:30:12)๋‘ ๋ฒˆ์งธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ๊ฐ€ ์žˆ๋‹ค.๐Ÿ’ก 1~N๋ฒˆ ๋งˆ์„์—์„œ X๋ฒˆ ๋งˆ์„๊นŒ์ง€..