Hello

: )

2017년 1월 24일 화요일

BOJ 백준님의 Google Code Jam 2017 소개 글

BOJ 자유게시판에 Google Code Jam 2017 소개글을 쓰셨네요.

https://www.acmicpc.net/board/view/12358

내용 중에 아래 부분이 중요 check!

준비하는데 도움이 되는 사이트
준비하는데 도움이 되는 책
알고리즘 공부하는 순서




대회 이후 더한 글

주의! 및 추가정보
"4 page 에 0 점보다 높은 점수를 받은 사람은 Round 1로 진출한다"라고 되어 있는데,
2017 대회 때 Contest board 의 안내를 보니 적어도 25 points 라고 되어 있다..

Qualification Round 2017 - You need at least 25 points to advance to the Round 1s. Remember: the scoreboard assumes that you got all Large datasets right until they are judged at the end of the round, so if you're not sure, consider earning some more points just in case!
점수를 바로 얻을 수 있는 기본 난이도(Small Inputs, 추가 제출 가능) 를 모두 풀어서 25 points 를 얻거나 Large 를 풀면 되겠네요. 
* Small Inputs 에 대해서 penalty 가 있는 것 처럼 되어 있는데, 정확히 먼지 모르겠네요.. points 는 아닌 듯 하네요.. 
Large 는 1회만 제출 가능하고 (8분 내에), 제출 직후에는 해당 점수를 획득한 것 처럼 되어 있고, 대회 끝나면 점수가 반영이 됩니다. 부분 점수는 없고요..
2017 은 
A Small 5 / Large 10
B Small 5 / Large 15
C Small 5 / Small 10 / Large 15
D Small 10 / Large 25

참고로, 2017 에서 Round 1 으로 가는 사람은 18332 명.....

2017년 1월 18일 수요일

USC Programming Contest 문제 정리


USC Programming Contest 문제는 아래 링크에 답안 코드, 테스트 데이터가 아주 잘 정리가 되어 있습니다

http://contest.usc.edu/index.php/Main/Details




BOJ 에는 https://www.acmicpc.net/category/91


  • Spring 18
  • Fall 2017
  • Spring 2017
  • Fall 2016
  • Spring 2016
  • Fall 2015
  • Spring 2015
  • Fall 2014
  • Spring 2014
  • Fall 2013
  • Spring 2013
  • Fall 2012
  • Spring 2012
  • Fall 2011
  • Spring 2011
  • Fall 2010
  • Spring 2010
  • Fall 2009
  • Spring 2009
  • Fall 2008
  • Spring 2008
  • Fall 2007
  • Spring 2007
  • Fall 2006
  • Spring 2006
  • Fall 2005
  • Spring 2005

2017년 1월 14일 토요일

Visual Studio 2017 단축키(Shortcut) 정리


Visual Studio 2015 단축키 정리


단축키 전체(공식): https://msdn.microsoft.com/en-us/library/da5kh0wa.aspx
단축키 전체(비공식): http://visualstudioshortcuts.com/2017/

몇 가지 자주 쓰는 거

자동 들여쓰기(Edit.FormatDocument) => Ctrl+K, Ctrl+D
선택영역 주석 처리(Edit.CommentSelection) => Ctrl+K, Ctrl+C
선택영역 주석 처리 취소(Edit.UncommentSelection) => Ctrl+K, Ctrl+U
선택영역 소문자(Edit.MakeLowercase) =>Ctrl+U
선택영역 대문자(Edit.MakeUppercase) =>Ctrl+Shift+U
커서 줄 아래로 이동(Edit.MoveSelectedLinesDown) => Alt+Down Arrow
코드 넣어주기(Edit.InsertSnippet) => Ctrl+K, Ctrl+X
* K, X 통해서 전체 목록이 나오는데, for 나 while 입력 후 tab 해보자

한 줄 삭제(Edit.LineCut) => Ctrl+L
커서 줄 위로 이동(Edit.MoveSelectedLinesUp) =>Alt+Up Arrow
선택 영역으로 +/- 영역 만들기(Edit.HideSelection) => Ctrl+M, Ctrl+H
선택 영역으로 +/- 영역 제거(Edit.StopHidingCurrent) => Ctrl+M, Ctrl+U
선언으로 이동(Edit.GoToDeclaration) => Ctrl+F12
정의로 이동(Edit.GoToDefinition) => F12

디버깅 시작(Debug.Start) => F5
디버깅 재시작(Debug.Restart) => Ctrl+Shift+F5
디버깅 중지(Debug.StopDebugging) => Shift+F5
함수인 경우 함수 안으로(Debug.StepInto) => F11
함수 밖으로(Debug.StepOut) => Shift+F11
함수 그냥 실행(Debug.StepOver) => F10
브레이크 포인트 On/Off(Debug.ToggleBreakpoint) => F9
BP 모두 삭제(Debug.DeleteAllBreakpoints) => Ctrl+Shift+F9
Watch 창(Debug.Watch1) => Ctrl+Alt+W, 1


편집 관련

이전 코드 편집 위치로 이동: Ctrl + -
> 다시 원래 편집 위치로 이동: Ctrl + Shift + -

한 단어를 강조: Ctrl + W
> 선택확장: Ctrl + Shift + Left or Right key

클립보드 링: Ctrl + Shift + V (여러 번 입력해보자. 이전에 Ctrl + C 했던 것들이 보인다)

코드 블락 접기/펴기: Ctrl + M * 2

Ctrl + 클릭: 단어 선택

Alt + 왼쪽 클릭 + 드래그: 영역 선택



Stack Overflow 에서 관련 게시글
http://stackoverflow.com/questions/98606/favorite-visual-studio-keyboard-shortcuts


2017년 1월 8일 일요일

Baltic Olympiad in Informatics (BOI) 문제 정리

Baltic Olympiad in Informatics (BOI) 문제는 해마다 다른 곳에 개최가 되어서 그런지 연도별로 운영되는 홈페이지도 다르고 내용도 완전 다르 듯..

테스트 데이터만 제공되는 경우도 있고, 답안이 있는 곳도 있고.. 연도별로 확인이 필요..





BOJ 에는 https://www.acmicpc.net/category/6 에서..


간단한 시간복잡도 공간복잡도


시간복잡도

  • 1초당 반복문 수행 횟수가 1억(108)을 넘어가면 시간 제한을 초과할 가능성이 있다
  • 1초가 걸리는 입력의 크기
    • O(1)
      • 한 번에 알 수 있다
    • O(lgN)
      • 반씩 줄여 나간다. 이분 탐색
    • O(N) : 1억
      • 1 개의 for 문
    • O(NlgN) : 5백만
    • O(N^2) : 1만
      • 2 개의 for 문
    • O(N^3) : 500
      • 3 개의 for 문
    • O(2^N) : 20

    • O(N!) : 10
      • 순열


공간복잡도


  • 재귀 호출에 따른 스택 크기는 계산이 어려우니 1 만번을 초과하지 않도록 한다


  • 2 차원 배열인 경우에 크기 계산에 조심


    • int 형 [10000][10000] 은 대략 400 MB


  • Bit 기반 자료크기
    • 1 << 0 =>      1
    • 1 << 1 =>      2
    • 1 << 2 =>      4
    • 1 << 3 =>      8
    • 1 << 4 =>     16
    • 1 << 5 =>     32
    • 1 << 6 =>     64
    • 1 << 7 =>    128
    • 1 << 8 =>    256
    • 1 << 9 =>    512
    • 1 << 10 => 1024
    • 1 << 11 => 2048
    • 1 << 12 => 4096