πŸ“ Computer Science

    [C++] 이뢄 κ·Έλž˜ν”„

    [C++] 이뢄 κ·Έλž˜ν”„

    이뢄 κ·Έλž˜ν”„ 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 파일

    [Git] Git README, .gitignore 파일

    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)

    [C++] νŽΈμ§‘ 거리 μ•Œκ³ λ¦¬μ¦˜(Edit Distance 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)

    μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄(Composite Pattern)

    μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄(Composite Pattern) μ»΄ν¬μ§€νŠΈ OOPμ—μ„œ μ»΄ν¬μ§€νŠΈλŠ” ν•˜λ‚˜ μ΄μƒμ˜ μœ μ‚¬ν•œ 객체둜 κ΅¬μ„±λœ 집합 객체둜 λͺ¨λ‘ μœ μ‚¬ν•œ κΈ°λŠ₯을 λ‚˜νƒ€λ‚Έλ‹€. 이λ₯Ό 톡해 객체 그룹을 μ‘°μž‘ν•˜λŠ” κ²ƒμ²˜λŸΌ 단일 객체λ₯Ό μ‘°μž‘ν•  수 μžˆλ‹€. μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄ μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄μ€ 볡합 κ°μ²΄λ‚˜ 단일 객체λ₯Ό λ™μΌν•˜κ²Œ μ·¨κΈ‰ν•˜λŠ” 것을 λͺ©μ μœΌλ‘œ ν•œλ‹€. 트리 ꡬ쑰둜 μž‘μ„±ν•˜μ—¬ 전체-λΆ€λΆ„(whole-part) 관계λ₯Ό ν‘œν˜„ν•œλ‹€. 1. κ΅¬ν˜„ μ‚¬μš©μžλŠ” Leaf와 Composite 클래슀λ₯Ό 직접 μ°Έμ‘°ν•˜μ§€ μ•Šκ³ , 곡톡 μΈν„°νŽ˜μ΄μŠ€ Componentλ₯Ό μ°Έμ‘°ν•œλ‹€. 1) Component λͺ¨λ“  Component듀을 μœ„ν•œ μΆ”μƒν™”λœ κ°œλ…μ΄λ‹€. Leaf와 Composite 클래슀의 μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€. interface Graphic { public void print..

    μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern)

    μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern)

    μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern) μ „λž΅ νŒ¨ν„΄μ΄λž€ λΉ„μŠ·ν•œ λ™μž‘μ„ ν•˜μ§€λ§Œ λ‹€λ₯΄κ²Œ κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” ν–‰μœ„(μ „λž΅)듀을 κ³΅ν†΅μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†λ°›λŠ” 각각의 클래슀둜 κ΅¬ν˜„ν•˜κ³  λ™μ μœΌλ‘œ λ°”κΏ€ 수 μžˆλ„λ‘ ν•˜λŠ” νŒ¨ν„΄μ΄λ‹€. μ „λž΅ νŒ¨ν„΄μœΌλ‘œ κ΅¬ν˜„λœ μ½”λ“œλŠ” 직접 ν–‰μœ„μ— λŒ€ν•œ μ½”λ“œλ₯Ό μˆ˜μ •ν•  ν•„μš” 없이 μ „λž΅λ§Œ λ³€κ²½ν•˜μ—¬ μœ μ—°ν•˜κ²Œ ν™•μž₯ν•  수 있게 λœλ‹€. 1. κ΅¬ν˜„ λ§Œμ•½ μ „λž΅ νŒ¨ν„΄μ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄, λ‹¨μˆœνžˆ if-elseλ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•΄μ•Ό ν•˜λ©° κ²Œμž„μ΄ μ—…λ°μ΄νŠΈλ˜μ–΄ 직업이 μΆ”κ°€λ˜κ±°λ‚˜ μˆ˜μ •μ΄ ν•„μš”ν•˜λ‹€λ©΄ attack() λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν•΄μ•Ό ν•  것이닀. class Character { private final String job; Character(String job) { this.job = job; } void attack() ..

    [κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄

    [κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄

    κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄ κ²Œμž„ 개발의 κ΄€μ μ—μ„œ 각 λ””μžμΈ νŒ¨ν„΄μ— λŒ€ν•΄μ„œ λ‹€λ£° 것이닀. κ·ΈλŸ¬λ‚˜ λͺ¨λ“  μ•±μ΄λ‚˜ κ²Œμž„ κ°œλ°œμ—μ„œλ„ μ μš©λœλ‹€. 1. Singleton Design Pattern ν”„λ‘œκ·Έλž¨μ΄ μ‹œμž‘λ  λ•Œ ν΄λž˜μŠ€κ°€ 졜초 ν•œ 번만 λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³  κ·Έ λ©”λͺ¨λ¦¬μ— μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€μ–΄ μ‚¬μš© 2020.05.16 - [πŸ“/✏ Design Pattern] - 싱글톀 νŒ¨ν„΄(Singleton Pattern) κ²Œμž„μ—μ„œλŠ” μ˜ν™”μ²˜λŸΌ ν•œ λͺ…μ˜ λ””λ ‰ν„°κ°€ μ‘΄μž¬ν•œλ‹€. λ””λ ‰ν„°λŠ” κ²Œμž„μ—μ„œ μΌμ–΄λ‚˜λŠ” λͺ¨λ“  것을 μˆ˜ν–‰ν•˜λŠ” ν΄λž˜μŠ€μ΄λ‹€. 였브젝트λ₯Ό λžœλ”λ§ ν•˜κ³  μœ„μΉ˜λ₯Ό μ—…λ°μ΄νŠΈν•˜κ³  ν”Œλ ˆμ΄μ–΄μ˜ μž…λ ₯을 μ •ν™•ν•œ 캐릭터에 전달해 μ£ΌλŠ” λ“±μ˜ 역할을 μˆ˜ν–‰ν•œλ‹€. Singleton νŒ¨ν„΄μ„ 톡해 λ””λ ‰ν„°κ°€ ν•˜λ‚˜ 이상 μƒμ„±λ˜λŠ” 것을 λ°©μ§€ν•œλ‹€. 2. Strat..