์ ์ฒด ๊ธ
Dependency Inversion Principle - ์์กด๊ด๊ณ ์ญ์ ์์น์ ๋ํด์
๊ฐ์ฒด์งํฅ ์ค๊ณ SOLID 5์์น ์ค์์ ๋ง์ง๋ง ์์น์ ํด๋นํ๋ DI (Dependency Inversion Principle)์ ๋ํด์ ์์๋ณด์. ๊ฐ์ฒด์งํฅ์ ์ค๊ณ์๋ ์์กด๊ด๊ณ๊ฐ ์๊ธฐ๊ธฐ ๋ง๋ จ์ด๋ค. ๊ฐ ํด๋์ค๋ ๋จ์ผ ์ฑ ์ ์์น์ ๋ฐ๋ผ ํ๋์ ์ฑ ์๋ง ์ ธ์ผ ํ๊ณ , ๊ฐ ํด๋์ค๊ฐ ๊ฒฐํฉ๋ผ ํ๋ก๊ทธ๋จ์ด ๊ตฌ๋๋๋ค๋ ๊ฒ์ ๋ณด๋ฉด, ์ด๋ค ํด๋์ค๊ฐ ๋ค๋ฅธ ํด๋์ค์ ์์กดํ๋ ๊ฒ์ ๋น์ฐํ๋ค. class Dog: def speak(self): print("Bark") class Cat: def speak(self): print("Meow") class Zoo: def __init__(self): self.cat = Cat() self.dog = Dog() def speak_all(self): self.cat.speak() self.do..
[Codeforces] Round #773 Div. 2
์์ฆ ์ฝ๋ํฌ์ค๋ฅผ ๋๋ฆฌ๊ณ ์๋๋ฐ, ์ด๋ ต๋ค,, Div2 4๊ฐ ํธ๋ ๊ฑธ ๋ชฉํ๋ก ๋ฌ๋ฆฌ๊ณ ์๋ค๋ง, ๊ณ์ํด์ ABC๋ฅผ ํ๊ฑฐ๋ ABE๋ฅผ ํ๊ฑฐ๋(???)... A. Hard Way ์ผ๊ฐํ์ด ์ฃผ์ด์ก์ ๋, $(0, x)$ ์ ์์ ์ผ๊ฐํ์ ๋ฟ์ง ์๋ ๋ณ์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๊ทธ๋ฆผ์ ๋ช ๋ฒ ๊ทธ๋ ค ๋ณด๋ฉด, ์ผ๊ฐํ์ ํ ๋ณ์ด x์ถ์ ํํํ๊ณ , ๋๋จธ์ง ํ ์ ์ด ๊ทธ ๋ณ๋ณด๋ค ์๋์ ์๋ ๊ฒฝ์ฐ, x์ถ์ ํํํ ๋ณ์ ๋ฟ์ ์ ์๋ค. ๋คํํ ๋ฟ์ง ์๋ ๋ณ์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ฉด ๋๋, ์ ๊ฒฝ์ฐ๋ฉด ๋ณ์ ๊ธธ์ด๋ฅผ, ๊ทธ๋ ์ง ์์ผ๋ฉด 0์ ์ถ๋ ฅํ๋ฉด ๋๋ค. B. Power Walking $N$ ๊ฐ์ ํ์์ ์ ์ ๋นํ ๋๋ ์, ๋๋ ๊ทธ๋ฃน๋ง๋ค uniqueํ ์์์ ๊ฐ์์ ํฉ์ ์ต์ํํ๋ ๋ฌธ์ ์ด๋ค. ์ด ๋, $1$ ๋ถํฐ $N$ ๊น์ง์ ์ ์ $K$ ์ ๋ํด์, ..
[ํ์ด์ฌ | Python] Mutable object, Immutable object
ํ์ด์ฌ์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด(object)์ด๋ค. ๊ฑฐ์ ๋ชจ๋ ๊ฐ์ฒด๋ ์์ฑ(attributes)๊ณผ ๋ฉ์๋(methods)๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๊ฐ์ฒด๋ผ๋ฆฌ์ ์๋ณ์ id(object)๋ฅผ ํตํด์ ํ๋ค. id๊ฐ ๊ฐ๋ค๋ฉด ๋์ผํ ๊ฐ์ฒด, ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด์ด๋ค. id๋ ํด๋น ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์ ์ผํ ์์(unique constant)์ด๋ฉฐ, ๊ฐ์ฒด๊ฐ ์๋ก ๊ฐ์์ง ๋น๊ต๋ฅผ ์ํด์๋ $==$ ๊ฐ ์๋ is ๋ฅผ ์ฌ์ฉํ๋ค. C์ธ์ด์ ํฌ์ธํฐ์ ๊ฐ์ ๊ฐ๋ ์ด์ง๋ง, ์ค์ ๋ก id๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฒ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์๋ฏธํ๋ ๊ฒ์ ์๋๋ค. ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๊ฑฐ๋, ๊ทธ๋ ์ง ์๋ค. ์ด๊ฒ์ด mutable object์ immutable object์ ์ฐจ์ด์ด๋ค. ์ฌ์ด ์๋ก, a = "abc" a.replace("a", "x") # a๋ ์ฌ์ ํ "abc"์ด..
[๊น | Git] Udacity Git Commit Message Style Guide - ๊น ์ปค๋ฐ ๋ฉ์์ง ์ผ๊ด์ฑ์๊ฒ ์ฐ๊ธฐ (์คํ์ผ ๊ฐ์ด๋)
์ปค๋ฐ ๋ฉ์์ง๊ฐ ๋ณด๊ธฐ ์ข์์ผ (์ผ๊ด์ฑ์๊ณ ์ฒด๊ณ์ ์ผ๋ก ์์ฑํด์ผ) ๋์ค์ ๋ค์ ๋ณด์์ ๋ ์ด๋ค ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋์ง, ์ด๋ค ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณค๋์ง ์๊ธฐ ํธํ๋ค. ์ต๊ทผ์ ์ฝ๋๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์์ฑํ๊ธฐ ์ํด์ Java, Python์ Style Guide๋ฅผ ์ฐธ๊ณ ํ์๋๋ฐ, ์ปค๋ฐ ๋ฉ์์ง์๋ ๊ฐ์ด๋๋ผ์ธ์ด ์๋ค! ์ค๋์ ๊ทธ ์ค์์ ์ ๋ค์ํฐ์ ์ปค๋ฐ๋ฉ์์ง ์คํ์ผ๊ฐ์ด๋๋ฅผ ์๊ฐํ๋ค. - Commit Message Structure (์ปค๋ฐ ๋ฉ์์ง ๊ตฌ์กฐ) ์ปค๋ฐ ๋ฉ์์ง๋ ๋น ์ค๋ก ๋๋์ด์ง ์ธ ๊ฐ์ง ํํธ๋ก ๊ตฌ์ฑ๋๋ค. title, body(optional), footer(optional) ๋ ์ด์์์ ์๋์ ๊ฐ๋ค. type: Subject body footer - The Type (์ปค๋ฐ ํ์ ) ์ปค๋ฐ ํ์ ์ ์ ๋ชฉ(title)์ ํด๋นํ๋ฉฐ, ์๋ ์ค ํ๋์ด..
[๋ฐฑ์ค | BOJ] ๋ฌธ์ ํ์ด
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถํ๋ ์๋ชจ์์ด ์๋ค! ๋๋ ๊ฐ ์์ง ์์ผ๋ ค๊ณ ๊ฐ์ ํด์ ๊ณต๋ถ๋ ๊ณ์ ์ด์ฌํ ํ๋ ค๊ณ ํ๋ ์ค. ์ค๋ 20-22์๊น์ง ๋ฌธ์ ํ์ด๋ฅผ ์ ์ด๋๋๋ฐ, ๊ธฐ๋กํด ๋๋ ค๊ณ ๋ธ๋ก๊ทธ์๋ ๊ณต์ . ๋ฌธ์ ๋ชฉ๋ก์ ์๋์ ๊ฐ๋ค. A: ์ ์ก๊ฐํ๊ณผ ์ผ๊ฐํ https://www.acmicpc.net/problem/14264 B: ๊ฐํฌ์ผ ๊ฑฐ๊ธฐ์ ์๋ ๊ฑฐ ์๋์ผ https://www.acmicpc.net/problem/21771 C: Router https://www.acmicpc.net/problem/15828 D: ์ ํ์ ์ฉฐ๋ฆฌ (Small) https://www.acmicpc.net/problem/16173 E: ์ ๋ง๋๊ธฐ https://www.acmicpc.net/problem/10799 F: Ocean View (Large) h..
[๋ฐฑ์ค | BOJ] Good Bye, BOJ 2021! ํ๊ธฐ ๋ฐ ํ์ด (ABCD)
๋ฐฑ์ค์์๋ ์ฐ๋ง์ ๊ตฟ๋ฐ์ด ๋ฐฑ์ค, ์ฐ์ด์ ํฌ๋ก ๋ฐฑ์ค(๊ตฟ๋ชจ๋ ๋ฐฑ์ค) ํ์ฌ๊ฐ ์๋ค. 2021 ๋ฐฑ์ค ๋ง๋ฌด๋ฆฌํ ๊ฒธ ๋ฌธ์ ํ์ด. ๋ํ์์๋ 2์๋ธ, ๋๋๊ณ CD ์ ์๋น๊น์ง ํ๋ค. A. 2021์ ๋ฌด์์ด ํน๋ณํ ๊น? $N$ ๋ฒ์๊ฐ $10,000$์ด๋ค. ์์๋ฅผ ์ญ ๋์ด๋๊ณ , ๋๊ฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ณฑํด๋๊ณ ์ด๋ถํ์ํด์ ํ์๋ค. ์ฌ์ค ์ด๋ถํ์์ ํ์๊ฐ ์๋๋ฐ. ์์ ๊ฐ์๊ฐ 30๊ฐ๊ฐ ์ ๋๋ค. ๋ฐฐ์ด์ ํ ๋ฐํด ๋ ๊ฑธ. $N = 10,000$์ผ ๋ 103๊น์ง ๋ฃ์ด๋ฌ์ผ ํ๋๋ฐ, ๋ฃ์ง ์์์ WA, ํ ์คํธํ๋ต์๊ณ ๋ฃ์ ์ฝ๋๋ฅผ ์ ์์ ์ WA. ์์ํ ์ค์๋ฅผ ๋ง์ด ํ๋ค. ์ ์ถ ์ ์๋ ๊ผญ ์ฒดํฌํ์. B. ์์ ์ผ์ดํฌ ๋ํ ์ค์๋ OEIS์ ํ์ ๋ฐ์์ ํ์๋ค. ์์ผ๋ก ์ค์ค ์ฐ๋ค๊ฐ ๋ญ๊ฐ ๊ท์น์ด ์๋ ๊ฒ ๊ฐ์์ ๋๊ฒผ๋ค. ์ฆ๋ช ์ ์๋์ ๊ฐ๋ค. $N ..
42์์ธ (42SEOUL) ์จ๋ผ์ธํ ์คํธ ํ๊ธฐ
1ํ๋ ์ ๋ง์น๊ณ ๊ณต๊ตฐ ์ ๋, 9์๋ง ์ ์ญ์ ํด๊ฐ ๋์์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ด๋ค ๊ณต๋ถ๋ฅผ ํ๋ฉด ์ข์๊น ๊ณ ๋ฏผ. ๋ค์ํ ์ฝ์ค๋ค์ ์ ํ๊ณ ๋ค์ด๋ณด๋๊ฒ ์ข๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ์ฌ๋ฟ ์์์ง๋ง ๋ด ๋๊ธธ์ ๋์๋ ๊ฑด ์ผ์ฑ SSAFY, ์ฐ์ํํ์ ๋ค ์ฐ์ํํ ํฌ์ฝ์ค, ์ด๋ ธ๋ฒ ์ด์ ์์นด๋ฐ๋ฏธ(์ ๋ถ) 42์์ธ. SSAFY๋ 4๋ ์ ์กธ์ ์ ๋ฐ ์กธ์ ์์ ์์๊ฒ ์ง์์๊ฒฉ์ด ์ฃผ์ด์ ธ ๋์๊ฒ๋ ํด๋น์ด ์ ๋๊ณ , ์ฐ์ํํ ํฌ์ฝ์ค๋ ๋ค์์ฃผ ์์์ผ(11/3)์ ์ ์๋ง๊ฐ์ด๋ผ ๊ณ ๋ฏผ์ค์ ์๋ค. ์์ธ42์์๋ ํ์ฌ ๋ชจ์ง์ค์ด ์๋๋ค. ๊ทธ๋๋ ์์ ์จ๋ผ์ธ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ํตํด ๊ต์ก๊ณผ์ ์ ์ ๊ณผํ ๊ธฐํ๋ฅผ ์ฃผ๊ธฐ์, ํ ์คํธ๋ฅผ ํ ๋ฒ ๋ดค๋ค. ํ ์คํธ๋ 4๋ถ, 2์๊ฐ์ด ์์๋๋ ๋ ๊ฐ์ง์ ๊ฒ์์ด ์ ๋ถ์ด๋ค. ํ ๋ฒ ๋ณด๊ณ ๋๋ฉด ๋ค์๋ ์ง์ํ ์ ์๋ค๋ ๊ฒ ๊ธด์ฅ๋๋ ๋ฐ ํ๋ชซํ๋ค. 4๋ถ์ด ๊ฑธ๋ ธ๋..
[๋ฐฑ์ค | BOJ] ๊ฐํฌ์ ํจ๊ป ํ๋ 2ํ ์ฝ๋ฉ ํ ์คํธ ํ๊ธฐ
์ ๋ฒ์ ์ฌ๋ฐ๊ฒ ํ์๋ ์๋ฆฌ์ฆ ๋ํ๊ฐ ์ด๋ ธ๋ค. 1ํ๋์ ๊ฐ์ด ๋ฌธ์ ๋ค์ด ์ฌ๋ฐ๋ค. ์ฒ์ ์๊ฐํ ํ์ด์๋ ๋ค๋ฅด๊ฒ ์๊ฐํ๋ ๋ฌธ์ ๋ค๋ ์์๋ค. 1์๋ถํฐ ๋ฐ์ง ์ฐธ์ฌํ์ง๋ ๋ชปํ์ง๋ง, 5๋ฌธ์ ๋ฅผ ํ์๋ค. ํ์ด๋ ์๋. ๊ฐํฌ์ ํจ๊ป ํ๋ 2ํ ์ฝ๋ฉ ํ ์คํธ www.acmicpc.net 1. ๊ฐํฌ์ ํ์ผ ํ์๊ธฐ ๋ฌธ์์ด ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํ ๋๋ฉด ํ์ด์ฌ๋ฐ์ ๋ชป ํ๋ ๋๋ฅผ ์กฐ๊ธ์ ์ดํดํ ์ ์๊ฒ ๋๋ค.. ๋จ์ ์ ๋ ฌ ์ธ ๋ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ฐ์ ์์์ ๋ฐ๋์์๋๋ก ์ ๋ ฌ์ ์งํํ๋ฉด, ์ฐ์ ์์๋ฅผ ๋ชจ๋ ๋ง์กฑํ๊ฒ๋ ์ ๋ ฌํ ์ ์๋ค. ํ์ผ๋ช ๊ณผ ํ์ฅ์๋ก ๋๋ ์ ๋ ฅ๋ฐ๊ณ , ์ง์ํ๋ ํ์ฅ์๋ค์ dict ๋ฅผ ํตํด ๊ด๋ฆฌํ ๋ค, key ๋ฅผ ๊ฐ๊ฐ ํ์ฅ์, ์ง์ ์ฌ๋ถ, ํ์ผ๋ช ์์๋๋ก ์ ๋ ฌ์ ์ธ ๋ฒ ํ๋ค. 2. ๊ฐํฌ์ ํค์๋ ์ด ๋ฌธ์ ๋ ๋ธ๋ฃจํธํฌ์ค๋ก ํด๊ฒฐํ๋ค...
[2021 Dev Carnival] ๋ฐ๋ธ์นด๋๋ฐ 2021 ์ฝ๋ฉํ ์คํธ ๊ธ์ ๋ฐฐ์ง ํ๊ธฐ (๋ฌธ์ ๋ณต๊ธฐ)
goorm.io์์ ์งํํ๋ 2021 Dev Carnival : ๋ฐ๋ธ ์นด๋๋ฐ์ ์ฐธ๊ฐํ๋ค ! 5์ 22์ผ์ ์งํ๋๋ ์ฝ๋ฉํ ์คํธ์๋๋ฐ, ์ผ๋ง ์ ์ ํ ์คํธ ๊ฒฐ๊ณผ๊ฐ ๋ฉ์ผ๋ก ๋ ์์๋ค. ์๊ณ ์์๋๋ฐ ๋ค์ ์๊ฐ๋์ ๊ธ์ ์ด๋ค. ํ ์คํธ๋ฅผ ํ๋ฉด์ ์์ฑํ ์ฝ๋๋ฅผ ๋ฐ๋ก ์ ์ฅํด๋์ง๋ ์์์ ์ ํํ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ ์๋ค. ๊ธฐ์ต๋๋ ๋๋ก ๋ฌธ์ ๋ฅผ ๋ณต๊ธฐํด๋ด์ผ๊ฒ ๋ค. 1๋ฒ ๋ฌธ์ ๋ ๋จ์๊ตฌํ ๋ฌธ์ ์๋ค. ์ฌ๋๋ง๋ค ๋จน์ ์ ์๋ ์์ ์์ด ์ ํด์ ธ ์๊ณ , ์์์ ์์๋๋ก ๋จน์ผ๋ฉฐ ์์ ๋๋ ์ฌ๋๋ค์ ์์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์๋ค. ๋ฐฐ์ด ๋๋ ค๊ฐ๋ฉด์ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ์๋ค. 2๋ฒ์ ๊ตฌํ์ด ์กฐ๊ธ ํ๋ค์ด๋ณด์ฌ์ 3, 4๋ฒ์ ๋จผ์ ๋ดค์๋ค. 3๋ฒ์ ๋ณด์๋ง์ DP๋ผ๋ ์๊ฐ์ด ๋ค์ด์ ๋๋ง์ณค๊ณ , 4๋ฒ ๋ฌธ์ ๋ฅผ ๋ถ์ก์๋ค. ๋จ๋ฐฉํฅ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ง๊ณ , ํ ๋ฒ ์ ์ ์ ๋ฐฉ๋ฌธํ ๋..
[๋ฐฑ์ค | BOJ] ๊ฐํฌ์ ํจ๊ป ํ๋ 1ํ ์ฝ๋ฉ ํ ์คํธ ํ๊ธฐ
์์ฆ ๋ฐฑ์ค์์ ๋ฌธ์ ๋ฅผ ์ข ํ๊ณ ์๋ค. ์ด๋ ค์ด ๊ณ ๊ธ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค๋ ๋ํ๋ ์ฝ๋ฉํ ์คํธ์์ ์์ฃผ ๋ณด์ด๋ ์๊ณ ๋ฆฌ์ฆ ์์ฃผ๋ก ์ฐ์ตํ๋ ค๊ณ ํ๋ค. Codeforces์ Round๋, ๋ฐฑ์ค์ ๋ํ๋, Atcoder์ Contest ๋ชจ๋ ์ฐธ ์ข์ง๋ง, ์ ๋ถ์ด ๊ตฐ์ธ์ธ์ง๋ผ ์ฝ๊ฒ ์์ํ์ง ๋ชปํ๊ณ ์๋ค. ๊ฐํฌ์ ํจ๊ป ํ๋ 1ํ ์ฝ๋ฉ ํ ์คํธ www.acmicpc.net ์ค๋ ๊ด์ฐฎ์ ์๊ฐ๋์ ๋ํ๊ฐ ์ด๋ ค์ ์ฐธ๊ฐํ๊ฒ ๋๋ค. ๋ฌธ์ ๋ค์ ์ฌ๋ฐ์๊ณ , ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ๋ค์ด ๋ฌธ์ ์ ์ ๋ น์์์ด์ ์ด๋ ๊ฒ์ ๋ ๊ฒ ํ์ด๋ณด๊ธฐ๋ ํ๋ค. ๊ณต์ง์ฌํญ์์ ๋ฏธ๋ฆฌ "๋น ๋ฅธ ์ ์ถ๋ ฅ"์ ์ฌ์ฉํ๋ผ๊ณ ์กฐ์ธํ์๋๋ฐ, ๊ฝค ํ ์คํธ์ผ์ด์ค๋ค์ด ๋ฌด๊ฑฐ์ด ๋ชจ์์ด๋ค. ํ์ด์ฌ์ผ๋ก ํ๊ฒน๊ฒ ๋์๊ฐ๋ค. ์ ๋ฒ ์๋ช ์ฌ๋ SMUPC์์๋ 2๋ฌธ์ ๋ง ํ๊ณ ๋ํ๋ฅผ ๋ง๋ฌด๋ฆฌํ์๋๋ฐ, ์ด๋ฒ ๋ํ์์๋ 8๋ฌธ์ ์ค์์ 6๋ฌธ..