U E D R , A S I H C RSS

ACM_ICPC/2013년스터디

1. 목표

  • 김태진, ê¶Œì˜�기, 곽병학 팀 : ë�™ìƒ� (본선 í•™êµ�순위 10위 ì�´ë‚´)
  • 참여를 ì›�하는 ë¶„ì�„ 위한 문ì�€ 언제나 열려있습니다.

2. 진행 방�

  • ê°�ìž� 문제를 풀어오고 설명, 설명들ì�€ 문제는 다ì�Œ 시간까지 ê°œì�¸ì �으로 풀어올 것.(Dovelet 사용)

2.1. 방학 중

  • 시간 - 매주 목 오후 5시.
  • 장소 - 6층 PC실
  • ë°©ì‹� - ê°�ìž� 문제를 풀어와서 토ì�˜í•˜ê³ , 다ì�Œ 문제를 정합니다.

3. 스터디

3.1. 1월 10�

3.1.1. ë‚´ìš©

3.1.2. 풀�

  • sort/ê¶Œì˜�기
  • subsequence/ê¶Œì˜�기 - 부분 구간, ê±´ì¡°, 공격ì �ì�¸ 소 문제 코드 모ë‘� 있어여. ê·¼ë�° 소스 공개하기 ë¶€ë�„럽네..

3.2. 1월 18�

3.2.1. ë‚´ìš©

* 참가� : 김태진, 권�기, 곽병학

3.2.2. 풀�


3.3. 1월 24�

3.3.1. ë‚´ìš©

* 참가� : 김태진, 권�기, 곽병학

3.4. 2월 13�

3.4.1. ë‚´ìš©

* 참가� :

3.4.2. 풀�


3.5. 2월 20�

3.5.1. ë‚´ìš©

* 참가� :
  • 오늘 푼 문제
    • 곽병학

    • 김태진
      • 헛간(저번주 문제)
      • n 마리ì�˜ ì¥�ê°€ í�¬ê¸°ê°€ ê°™ì�€ n ê°œì�˜ 버터를 먹는ë�° n 시간ì�´ 걸린다고 í•  때 , m 마리ì�˜ ì¥�ê°€ m ê°œì�˜ 버터를 먹는ë�° 걸리는 시간ì�„ 구하는것ì�´ 문제ì�´ë‹¤. ê°�ê°�ì�˜ ì¥�ê°€ 치즈를 먹는 ì†�ë�„는 모ë‘� ë�™ì�¼í•˜ë‹¤ê³  한다.
    • ê¶Œì˜�기

  • 풀어보기 : land

3.5.2. 풀�



3.6. 2월 27�

3.6.1. ë‚´ìš©

* 참가� :
  • 오늘 푼 문제
    • 곽병학
    • 김태진
    • ê¶Œì˜�기
      • Binary Indexed Tree
      • Up Sequence
      • moblie
  • 개강 ì�´í›„ì—�는 매주 수요ì�¼ 6시ì—� 스터디 시작하기로 ê²°ì •, 격주로 토요ì�¼ì—�ë�„ 만나기로 함.
  • inflate 모르겠다 알려줘

3.6.2. 풀�



3.7. 3월 6�

3.7.1. ë‚´ìš©

* 참가� :

3.7.2. 풀�



3.8. 3월 13�

3.8.1. ë‚´ìš©

3.9. 3월 20�

3.9.1. ë‚´ìš©

  • 코드í�¬ìФ 문제풀기

3.10. 3월 24�

3.10.1. ë‚´ìš©

  • 코드í�¬ìФ 복기
    • C번ì�€ 예ìƒ�대로 쉽게 푸는 방법ì�´ 있었ì�Œ
    • D번ì�€ í’€ì�´ë²•ì—� 대한 실마리가 제시ë�˜ì–´ ê°�ìž� 코딩할 계íš�

3.11. 4ì›”

  • 시험기간ì—� ì�˜í•œ 휴ì‹�기

3.12. 5월 8�

  • 문제 풀어오지 못함..

3.13. 5월 15�

3.13.1. ë‚´ìš©


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
    • Longest increasing subsequence : DAG로 바꾼다.(increasing하는 ê³³ì—�ë§Œ edgeìƒ�성ë�¨) ì�´í›„ 가장 ë§Žì�´ 방문하ë�„ë¡� L(j) = 1+ max{L(i) : (i,j)}수행
      • 최대 pathì�˜ 길ì�´ë¥¼ 구한 후ì—� 뒤로 ë�Œì•„가면서 숫ìž�ê°€ 줄어드는 ë…€ì„�들ì�„ 스íƒ�ì—� 담으면 pathë�„ 구할 수 있다.
    • Edit distance : 글ìž� 최소 오류개수 구하기 (exponentialê³¼ polynomialì�˜ 최소 오류는 6ê°œ.)
      • Similar to DTW
  • ê¶Œì˜�기 : 3장 그래프
  • 곽병학 : Hoffman code - 쓸ë�°ì—†ì�„ê±° ê°™ì�Œ..

3.15. 7월 4�

3.15.1. Need to Discuss

  • Stack부분ì—�서 Histogram 문제
  • BFS 효율ì � 구현

3.15.2. ë‚´ìš©

3.16. 7월 11�

3.16.1. Need to Discuss


3.16.2. ë‚´ìš©

  • 김태진 : Dynamic Programming
  • 곽병학 : 한붓그리기?
  • ê¶Œì˜�기 : ?

3.17. 7월 16�

3.17.1. Need to Discuss


3.17.2. ë‚´ìš©

3.18. 7월 25�


  • 완전(êµ�란)순열 - http://ko.wikipedia.org/wiki/완전순열
  • 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í…Œì�´ë¸”ì�˜ 범위ì—� 벗어나는 경우(예를 들어서 ì�Œìˆ˜ 번지)ê°€ 나올 수 있으므로 ì�´ì—� 대한 처리를 해줘야 한다. 비쥬얼 스튜디오ì—�서 코드를 작성할 때, í…Œì�´ë¸” 범위ì—� 벗어나ë�„ 정답ì�´ 나오는 경우가 ìƒ�겨서 ì�´ëŸ° 예외를 발견하기 힘들었ì�Œ..

3.19. 7월 28�

  • Algospotë°° 알고리즘대회
  • 멘탈파괴당함

3.20. 7월 30�,8월 6�,8월 8�

3.21. 8월 13�,8월 15�

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를 바꿔서 재시�

3.23. 9월 28�, 10월 2�

  • 우리ì�˜ 1ë…„ê°„ì�˜ 여정ì�€ 갑작스럽게 ë��ì�´ 찾아왔습니다.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:20
Processing time 0.0143 sec