[C++] Palindrome
ยท
๐Ÿ“ Computer Science/โœ Algorithm
Palindrome1. ๊ฐœ๋…Palindrome์€ ๊ฑฐ๊พธ๋กœ ์ฝ์–ด๋„ ์ œ๋Œ€๋กœ ์ฝ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฌธ์žฅ์„ ๋งํ•œ๋‹ค.  2. ๋ฌธ์ œhttps://leetcode.com/problems/palindrome-partitioning/description/#include #include using namespace std;class Solution {public: vector> answer; vector sub; vector> partition(string s) { dfs(s, 0); return answer; } void dfs(string s, int index) { if (index == s.length()) { answer.push_bac..
[C++] ์ด๋ถ„ ๊ทธ๋ž˜ํ”„
ยท
๐Ÿ“ Computer Science/โœ Algorithm
์ด๋ถ„ ๊ทธ๋ž˜ํ”„ 1. ๊ฐœ๋… ์ด๋ถ„ ๊ทธ๋ž˜ํ”„๋ž€ ์ธ์ ‘ํ•œ ์ •์ ๋ผ๋ฆฌ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ์น ํ•˜์—ฌ ๋ชจ๋“  ์ •์ ์„ ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ๊ทธ๋ฃน์˜ ์ •์ ์„ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งํ•œ๋‹ค. 2. ์ด๋ถ„ ๋งค์นญ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ถ„ ๋งค์นญ์ด๋ž€ ์ด๋ถ„ ๊ทธ๋ž˜ํ”„์—์„œ ํ•œ์ชฝ ๊ทธ๋ฃน(A)๊ณผ ๋‹ค๋ฅธ ํ•œ์ชฝ ๊ทธ๋ฃน(1)์ด ๋งค์นญ์„ ํ–ˆ์„ ๋•Œ ์ตœ๋Œ€ ์œ ๋Ÿ‰์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋งํ•œ๋‹ค. 3. ๋ฌธ์ œ https://www.acmicpc.net/problem/1707 1707๋ฒˆ: ์ด๋ถ„ ๊ทธ๋ž˜ํ”„ ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ, ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ •์ ์˜ ๊ฐœ์ˆ˜ V์™€ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ E๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— www.acmicpc.net #include #include #include #include us..
[Git] Git README, .gitignore ํŒŒ์ผ
ยท
๐Ÿ“ Computer Science/โœ
Git Repositories๋ฅผ ๋งŒ๋“ค ๋•Œ, README ํŒŒ์ผ๊ณผ .gitignore ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. README ํŒŒ์ผ README ํŒŒ์ผ์€ ํ”„๋กœ์ ํŠธ์™€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ฑ…์˜ ํ‘œ์ง€์™€ ๊ฐ™์€ ๋ฌธ์„œ์ด๋‹ค. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ, ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ , ํ™œ์šฉ ๋ฐฉ๋ฒ• ๋“ฑ์„ ๊ธฐ๋กํ•œ๋‹ค. ํŒŒ์ผ์˜ ํ™•์žฅ์ž๋Š” md๋กœ ๋งˆํฌ๋‹ค์šด(Markdown)์˜ ์•ฝ์ž์ด๋‹ค. https://coding-factory.tistory.com/620 [Git] GitHub README ์ž‘์„ฑ๋ฒ• (๋งˆํฌ๋‹ค์šด, ์ด๋ฏธ์ง€, Gif, ์ฝ”๋“œ ๋ธ”๋ก ์‚ฌ์šฉ๋ฒ•) ๋ฆฌ๋“œ๋ฏธ(README)๋ž€? README๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ๊ธ€์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋‚˜ ์••์ถ• ํŒŒ์ผ์— ํฌํ•จ๋œ ๊ธฐํƒ€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด์™€ coding-factory..
[C++] ํŽธ์ง‘ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Edit Distance Algorithm)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
ํŽธ์ง‘ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ๊ฐœ๋… ํŽธ์ง‘ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Edit Distance Algorithm)์€ ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด A, B๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‘ ๋ฌธ์ž์—ด์ด ์–ผ๋งˆ๋‚˜ ์œ ์‚ฌํ•œ ์ง€๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ฆ‰, ๋ฌธ์ž์—ด A๊ฐ€ ๋ฌธ์ž์—ด B์™€ ๊ฐ™์•„์ง€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช‡ ๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ์˜ ์—ฐ์‚ฐ์ด๋ž€ ์‚ฝ์ž…(Insertion), ์‚ฝ์ž…(Deletion), ๋Œ€์ฒด(Replacement)๋ฅผ ๋งํ•œ๋‹ค. ๋ฌธ์ž์—ด ๊ฐ„์˜ ์œ ์‚ฌ๋„ ์ธก์ •์ฒ˜๋Ÿผ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๋‘ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์˜ ์œ ์‚ฌ๋„๋ฅผ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŠนํžˆ ํ”„๋กœ๊ทธ๋žจ์˜ ํ‘œ์ ˆ ์—ฌ๋ถ€, ์ฒ ์ž ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ ๋“ฑ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ๊ธฐ๋ณธ ์›๋ฆฌ 3. ๋ฌธ์ œ https://leetcode.com/problems/edit-distance/description/ Edit D..
์ปดํฌ์ง€ํŠธ ํŒจํ„ด(Composite Pattern)
ยท
๐Ÿ“ Computer Science/โœ Design Pattern
์ปดํฌ์ง€ํŠธ ํŒจํ„ด(Composite Pattern) ์ปดํฌ์ง€ํŠธ OOP์—์„œ ์ปดํฌ์ง€ํŠธ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์œ ์‚ฌํ•œ ๊ฐ์ฒด๋กœ ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ ๊ฐ์ฒด๋กœ ๋ชจ๋‘ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๊ทธ๋ฃน์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋‹จ์ผ ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปดํฌ์ง€ํŠธ ํŒจํ„ด ์ปดํฌ์ง€ํŠธ ํŒจํ„ด์€ ๋ณตํ•ฉ ๊ฐ์ฒด๋‚˜ ๋‹จ์ผ ๊ฐ์ฒด๋ฅผ ๋™์ผํ•˜๊ฒŒ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค. ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ์ž‘์„ฑํ•˜์—ฌ ์ „์ฒด-๋ถ€๋ถ„(whole-part) ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. 1. ๊ตฌํ˜„ ์‚ฌ์šฉ์ž๋Š” Leaf์™€ Composite ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ , ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค Component๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. 1) Component ๋ชจ๋“  Component๋“ค์„ ์œ„ํ•œ ์ถ”์ƒํ™”๋œ ๊ฐœ๋…์ด๋‹ค. Leaf์™€ Composite ํด๋ž˜์Šค์˜ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. interface Graphic { public void print..
์ŠคํŠธ๋ž˜ํ‹ฐ์ง€ ํŒจํ„ด(Strategy Pattern)
ยท
๐Ÿ“ Computer Science/โœ Design Pattern
์ŠคํŠธ๋ž˜ํ‹ฐ์ง€ ํŒจํ„ด(Strategy Pattern) ์ „๋žต ํŒจํ„ด์ด๋ž€ ๋น„์Šทํ•œ ๋™์ž‘์„ ํ•˜์ง€๋งŒ ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ํ–‰์œ„(์ „๋žต)๋“ค์„ ๊ณตํ†ต์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” ๊ฐ๊ฐ์˜ ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ๋™์ ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํŒจํ„ด์ด๋‹ค. ์ „๋žต ํŒจํ„ด์œผ๋กœ ๊ตฌํ˜„๋œ ์ฝ”๋“œ๋Š” ์ง์ ‘ ํ–‰์œ„์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š” ์—†์ด ์ „๋žต๋งŒ ๋ณ€๊ฒฝํ•˜์—ฌ ์œ ์—ฐํ•˜๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 1. ๊ตฌํ˜„ ๋งŒ์•ฝ ์ „๋žต ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๋‹จ์ˆœํžˆ if-else๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋ฉฐ ๊ฒŒ์ž„์ด ์—…๋ฐ์ดํŠธ๋˜์–ด ์ง์—…์ด ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋‹ค๋ฉด attack() ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. class Character { private final String job; Character(String job) { this.job = job; } void attack() ..