Contents
- 1. 목표
- 2. 진행 방�
- 3. 스터디
- 3.1. 1월 10�
- 3.2. 1월 18�
- 3.3. 1월 24�
- 3.4. 2월 13�
- 3.5. 2월 20�
- 3.6. 2월 27�
- 3.7. 3월 6�
- 3.8. 3월 13�
- 3.9. 3월 20�
- 3.10. 3월 24�
- 3.11. 4ì›”
- 3.12. 5월 8�
- 3.13. 5월 15�
- 3.14. 6월 27�
- 3.15. 7월 4�
- 3.16. 7월 11�
- 3.17. 7월 16�
- 3.18. 7월 25�
- 3.19. 7월 28�
- 3.20. 7월 30�,8월 6�,8월 8�
- 3.21. 8월 13�,8월 15�
- 3.22. 8월 21�,8월 28�, 8월 30�
- 3.23. 9월 28�, 10월 2�
1. 목표 ¶
- 김태진, ê¶Œì˜�기, 곽병학 팀 : ë�™ìƒ� (ë³¸ì„ í•™êµ�순위 10위 ì�´ë‚´)
- 참여를 ì›�하는 ë¶„ì�„ 위한 문ì�€ ì–¸ì œë‚˜ ì—´ë ¤ìžˆìŠµë‹ˆë‹¤.
2. ì§„í–‰ ë°©ì‹� ¶
- ê°�ìž� ë¬¸ì œë¥¼ í’€ì–´ì˜¤ê³ ì„¤ëª…, 설명들ì�€ ë¬¸ì œëŠ” 다ì�Œ 시간까지 ê°œì�¸ì �으로 풀어올 것.(Dovelet 사용)
2.1. ë°©í•™ 중 ¶
- 시간 - 매주 목 오후 5시.
- 장소 - 6층 PC실
- ë°©ì‹� - ê°�ìž� ë¬¸ì œë¥¼ 풀어와서 í† ì�˜í•˜ê³ , 다ì�Œ ë¬¸ì œë¥¼ ì •í•©ë‹ˆë‹¤.
3.1.1. ë‚´ìš© ¶
- 참가� : 김태진, 권�기, 곽병학
- 2013년 스터디 시작!
- 작년 ë°©ì‹�í•˜ê³ ë˜‘ê°™ìŠµë‹ˆë‹¤.
- 작년 ë°©ì‹�í•˜ê³ ë˜‘ê°™ìŠµë‹ˆë‹¤.
- 오늘 푼 ë¬¸ì œ
- 김태진
- queue - 소수 길
- queue - 소수 길
- 곽병학
- dynamic programming - �리�리
- dynamic programming - �리�리
- 권�기
- linked list - josephus
- 퀵 ì •ë ¬,ì�´ì§„검색,parametric search - 숫ìž� 추측하기, 세 ê°’ì�˜ ì •ë ¬, 부분 구간, ê±´ì¡°, 공격ì �ì�¸ 소
- linked list - josephus
- 김태진
3.1.2. í’€ì�´ ¶
- sort/권�기
- subsequence/ê¶Œì˜�기 - 부분 구간, ê±´ì¡°, 공격ì �ì�¸ 소 ë¬¸ì œ 코드 모ë‘� 있어여. ê·¼ë�° 소스 공개하기 ë¶€ë�„럽네..
3.2.1. ë‚´ìš© ¶
* 참가� : 김태진, 권�기, 곽병학
- 오늘 푼 ë¬¸ì œ
- 김태진
- dynamic programming - 부분 합
- greedy method - 거스름�, 발아
- dynamic programming - 부분 합
- 곽병학
- bisection - crossed ladder
- queue - �� 간 소를 잡아�
- bisection - crossed ladder
- 권�기
- graph, dfs - 단지 번호 붙�기, orders, � 짓기, 슈� 소수, 달팽�
- graph, dfs - 단지 번호 붙�기, orders, � 짓기, 슈� 소수, 달팽�
- 김태진
3.4.1. ë‚´ìš© ¶
* 참가� :
- 오늘 푼 ë¬¸ì œ
- 곽병학
- 김태진
- 계단오르기
- BackTrackingë¬¸ì œ 1ë¬¸ì œ
- 계단오르기
- 권�기
- 곽병학
- 풀어보기 : land
3.5.1. ë‚´ìš© ¶
* 참가� :
- 오늘 푼 ë¬¸ì œ
- 곽병학
- 김태진
- 헛간(ì €ë²ˆì£¼ ë¬¸ì œ)
- n 마리ì�˜ ì¥�ê°€ í�¬ê¸°ê°€ ê°™ì�€ n ê°œì�˜ 버터를 먹는ë�° n 시간ì�´ ê±¸ë¦°ë‹¤ê³ í• ë•Œ , m 마리ì�˜ ì¥�ê°€ m ê°œì�˜ 버터를 먹는ë�° 걸리는 시간ì�„ 구하는것ì�´ ë¬¸ì œì�´ë‹¤. ê°�ê°�ì�˜ ì¥�ê°€ 치즈를 먹는 ì†�ë�„는 모ë‘� ë�™ì�¼í•˜ë‹¤ê³ 한다.
- 헛간(ì €ë²ˆì£¼ ë¬¸ì œ)
- 권�기
- 곽병학
- 풀어보기 : land
3.7.1. ë‚´ìš© ¶
* 참가� :
- 오늘 푼 ë¬¸ì œ
- 곽병학
- pongdang, align, us
- pongdang, align, us
- 김태진
- jumping_cow
- jumping_cow
- 권�기
- 곽병학
3.9.1. ë‚´ìš© ¶
- 코드í�¬ìФ ë¬¸ì œí’€ê¸°
- 284회vol2.
- A,B번 풀었�
- 284회vol2.
3.10.1. ë‚´ìš© ¶
- 코드�스 복기
- C번� 예�대로 쉽게 푸는 방법� 있었�
- D번ì�€ í’€ì�´ë²•ì—� 대한 실마리가 ì œì‹œë�˜ì–´ ê°�ìž� ì½”ë”©í• ê³„íš�
- C번� 예�대로 쉽게 푸는 방법� 있었�
3.13.1. ë‚´ìš© ¶
- 김태진
- 코드잼_1C�운드: 857등
- Consonants, Pogo, The Great Wall
- Consonants, Pogo, The Great Wall
- 코드잼_1C�운드: 857등
def Solve(x, y):
N = 0
sum = 0
while sum < abs(x) + abs(y) or (sum + x + y) % 2 == 1:
N += 1
sum += N
result = ""
while N > 0:
if abs(x) > abs(y):
if x > 0:
result += 'E'
x -= N
else:
result += 'W'
x += N
else:
if y > 0:
result += 'N'
y -= N
else:
result += 'S'
y += N
N -= 1
return result.reversed()
- 권�기
- 곽병학
3.14. 6ì›” 27ì�¼ ¶
- 김태진 : Dynamic Programming 6.1~6.3
- Shortest Path : DAG(directed acyclic graphs)로 바꾼 후 Source�서부터 dist(v) = min{dist(v) + l(u,v)}사용
- 170p
- 170p
- Longest increasing subsequence : DAG로 바꾼다.(increasing하는 곳�만 edge�성�) �후 가장 많� 방문하�� L(j) = 1+ max{L(i) : (i,j)}수행
- 최대 pathì�˜ 길ì�´ë¥¼ 구한 후ì—� 뒤로 ë�Œì•„가면서 숫ìž�ê°€ 줄어드는 ë…€ì„�들ì�„ 스íƒ�ì—� 담으면 pathë�„ êµ¬í• ìˆ˜ 있다.
- 최대 pathì�˜ 길ì�´ë¥¼ 구한 후ì—� 뒤로 ë�Œì•„가면서 숫ìž�ê°€ 줄어드는 ë…€ì„�들ì�„ 스íƒ�ì—� 담으면 pathë�„ êµ¬í• ìˆ˜ 있다.
- Edit distance : 글� 최소 오류개수 구하기 (exponential과 polynomial� 최소 오류는 6개.)
- Similar to DTW
- Similar to DTW
- Shortest Path : DAG(directed acyclic graphs)로 바꾼 후 Source�서부터 dist(v) = min{dist(v) + l(u,v)}사용
- 권�기 : 3장 그래프
- 곽병학 : Hoffman code - 쓸�없�거 같�..
3.15.2. ë‚´ìš© ¶
- 김태진 : DP
- Maximum Sum - kadane's algorithm
- proof - http://prezi.com/fsaynn-iexse/kadanes-algorithm/
- Arrayì—�서 íŠ¹ì • subsetì�˜ í•©ì�´ 가장 í�¬ë�„ë¡� 하는 부분찾기.
- proof - http://prezi.com/fsaynn-iexse/kadanes-algorithm/
- 권�기 :
- Topological sort -
- Strongly Connected Component(SCC)
- Tarjan's strongly connected components algorithm - ��
- URLì—� 'ê°€ 들어가면 ê°œê³ ìƒ�.
- URLì—� 'ê°€ 들어가면 ê°œê³ ìƒ�.
- Tarjan's strongly connected components algorithm - ��
- Topological sort -
- 곽병학 :
3.16.2. ë‚´ìš© ¶
- 김태진 : Dynamic Programming
- KnapsackProblem/김태진 : 0/1냅색 ë¬¸ì œ ì�´ì œ 좀 ì�´í•´í–ˆì�Œë‹¤..
- KnapsackProblem/김태진 : 0/1냅색 ë¬¸ì œ ì�´ì œ 좀 ì�´í•´í–ˆì�Œë‹¤..
- 곽병학 : 한붓그리기?
- 권�기 : ?
3.17.2. ë‚´ìš© ¶
- ì°¸ê³ ë¬¸ì œ prime_path http://211.229.66.5/30stair/prime_path/prime_path.php?pname=prime_path
- 곽병학: ì „ì²´ ë§µì—�서 ê°�ê°� ë�…립ì �ì�¸ 그래프들 찾기 - ë¬¸ì œì �ì�€ ì•Œì•˜ê³ í’€ì–´ì˜¤ê² ì�Œ, 그래프 ë¬¸ì œ 안풀어오면 ì €ë…�
- 김태진: gusul/김태진
3.18. 7ì›” 25ì�¼ ¶
- ì™„ì „(êµ�란)순열 - http://ko.wikipedia.org/wiki/ì™„ì „ìˆœì—´
- !n = (n - 1) * (!(n - 2) + !(n - 1))
- �명 - http://blog.naver.com/PostView.nhn?blogId=kcg2271&logNo=90064644595
- !n = (n - 1) * (!(n - 2) + !(n - 1))
- DP ë¬¸ì œ worm/김태진 - ì �í™”ì‹� 세울 때 k=0와 k=1, k=2ì�¼ë•Œë¥¼ 특히 조심하ìž�. - ê±� 여긴 수작업하는게 ì†�편함.
- Bar_code ë¬¸ì œ - http://211.229.66.5/30stair/bar_code/bar_code.php?pname=bar_code
- í’€ì�´ - 삼차ì›� í…Œì�´ë¸”ì�„ 사용한 DPë¬¸ì œ, d(bar,unit,width)는 bar번째ì�˜ bar를 사용하면서, unitì�˜ 위치ì—� ê·¸ barì�˜ í�ì�´ widthì�¼ 때ì�˜ 경우ì�´ë‹¤. ë”°ë�¼ì„œ 가능한 ëª¨ë“ ë°”ì½”ë“œì�˜ 수를 구하는 것ì�€ d(bar,unit,0 ~ width)를 ì „ë¶€ ë�”해주면 ë�œë‹¤.
- ì �í™”ì‹� : d(bar, unit, width) += d(bar - 1,unit - width,l);
- ì �í™”ì‹�ì�„ 구하는 것ì�€ 금방 구했으나, index를 얻어내는 것ì�´ 힘들었ì�Œ.
- 설명하면 1110110 ì�´ë�¼ëŠ” 것ì�´ 있ì�„ 때, 1110110ì�´ 오기 ì „ì—�는 110으로 시작하는 ëª¨ë“ ë°”ì½”ë“œê°€ 있ì�„ 것ì�´ê³ , ê·¸ ì�´ì „ì—�는 10으로 시작하는 ëª¨ë“ ë°”ì½”ë“œê°€ 있ì�„ 것ì�´ë‹¤. ê·¸ë¦¬ê³ 1110110ì�´ë�¼ëŠ” 바코드가 오기 ì „ì—�는 111000으로 시작하는 ëª¨ë“ ë°”ì½”ë“œê°€ 있ì�„ 것ì�´ê³ , ê·¸ ì�´ì „ì—�는 11100으로 시작하는 ëª¨ë“ ë°”ì½”ë“œê°€ 있ì�„ 것ì�´ë‹¤. dpí…Œì�´ë¸”ì—� 해당 경우ì—� 대한 경우ì�˜ 수를 모ë‘� ì €ìž¥í•´ë†¨ê¸° 때문ì—�, 앞ì—�서 부터 차례대로 ì�´ì „ì—� 올 바코드ì�˜ 수를 ë�”해나가면 index를 êµ¬í• ìˆ˜ 있다.
- 풀면서 주ì�˜í• ì � : dpí…Œì�´ë¸”ì�˜ 범위ì—� 벗어나는 경우(예를 들어서 ì�Œìˆ˜ 번지)ê°€ 나올 수 있으므로 ì�´ì—� 대한 처리를 해줘야 한다. 비쥬얼 스튜디오ì—�서 코드를 ìž‘ì„±í• ë•Œ, í…Œì�´ë¸” 범위ì—� 벗어나ë�„ ì •ë‹µì�´ 나오는 경우가 ìƒ�겨서 ì�´ëŸ° 예외를 발견하기 힘들었ì�Œ..
- í’€ì�´ - 삼차ì›� í…Œì�´ë¸”ì�„ 사용한 DPë¬¸ì œ, d(bar,unit,width)는 bar번째ì�˜ bar를 사용하면서, unitì�˜ 위치ì—� ê·¸ barì�˜ í�ì�´ widthì�¼ 때ì�˜ 경우ì�´ë‹¤. ë”°ë�¼ì„œ 가능한 ëª¨ë“ ë°”ì½”ë“œì�˜ 수를 구하는 것ì�€ d(bar,unit,0 ~ width)를 ì „ë¶€ ë�”해주면 ë�œë‹¤.
3.20. 7ì›” 30ì�¼,8ì›” 6ì�¼,8ì›” 8ì�¼ ¶
- Coder's High 2013 (Algospot ì•Œê³ ë¦¬ì¦˜ëŒ€íšŒ) 풀기
- ��
- 푼 ë¬¸ì œ
- ì‚¬ì‹ ë�„
- 태진 풀� FOURGODS/김태진
- 태진 풀� FOURGODS/김태진
- Jump
- 태진 풀� JumpJump/김태진
- 태진 풀� JumpJump/김태진
- 째능�육
- Weekly Calendar
- 우주개발ì�˜ 길ì�€ ë©€ê³ ë�„ 험하다
- 권�기 품
- 권�기 품
- ì‚¬ì‹ ë�„
- ��
3.21. 8ì›” 13ì�¼,8ì›” 15ì�¼ ¶
- 2012 ICPCëŒ€ì „ ë¬¸ì œ 풀기 : ë§�í�¬
- C - Critical 3-path
- 위ìƒ�ì •ë ¬, critical pathì—� 대해 공부 ë°� 코딩 - 코드 ë°� 해설ì�€ Fundamental of DataStructure를 ì°¸ê³ í•˜ìž�.
- 위ìƒ�ì •ë ¬, critical pathì—� 대해 공부 ë°� 코딩 - 코드 ë°� 해설ì�€ Fundamental of DataStructure를 ì°¸ê³ í•˜ìž�.
- C - Critical 3-path
- �리오미노
- DPë¬¸ì œ. 태진 í’€ì�´ POLY/김태진
- DPë¬¸ì œ. 태진 í’€ì�´ POLY/김태진
3.22. 8ì›” 21ì�¼,8ì›” 28ì�¼, 8ì›” 30ì�¼ ¶
- ì œ2회 대학ìƒ�프로그래ë°� 대회 ë�™ì•„리 ì—°í•© ë§�í�¬
- 사�형 2개가 겹치는 지 아닌지 �별하는 방법
Ax1� A사�형� 왼쪽위 x좌표. By2는 B사�형� 오른쪽아래 y좌표
if Ax1 < Bx1
if Bx1 > Ax2 && By1 > Ay2
if By2 > Ay1
then 겹침
else 안겹침
else 안겹침
else A와 B를 바꿔서 재시�
- Sliding Window Minimum Algorithm - http://people.cs.uct.ac.za/~ksmith/articles/sliding_window_minimum.html










