์ ์ฒด ๊ธ
[Codeforces] Round #784 Div. 4
์ฒ์์ผ๋ก ์ฌ์๋ธ๋ฅผ ํ๋ค ! ๋งค๋ฒ ์ฝํฌ ์น๋ค๊ฐ ์ผ์ด ์๊ฒจ์ ์ ์๊ฐ ๋ฐ๋ฅ์ผ๋ก ๊ณ ๊พธ๋ผ์ก๋๋ฐ, ์ด๋ฒ์ ์ ๋๋ก ์ง์คํด์ ํ์ด๋ดค๋ค. A. Division? ๋จ์ ์กฐ๊ฑด๋ฌธ์ผ๋ก ํ๋จํ๋ค. B. Triple $N
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..