Hello

: )

2016년 12월 26일 월요일

Japanese Olympiad in Informatics (JOI) 문제 정리

JOI 문제는 홈페이지에 테스트 데이터(TC)와 정답 코드가 잘 정리가 되어 있습니다.
크롬 브라우저를 이용해서 마우스 우 클릭으로 팝업 메뉴를 만들면 번역하기가 나오는데, 번역해서 보면 보세요.

BOJ 에는

본선: https://www.acmicpc.net/category/100
예선: https://www.acmicpc.net/category/101

https://www.ioi-jp.org/joi/problem_archive-light.html 에서 연도별로 선택해서 들어가면



아래와 같이 테스트 데이터와 정답 코드를 볼 수 있는 곳으로 갈 수 있어요.




본선
  • JOI 2018
  • JOI 2017
    • 1:
    • 2:
    • 3:
    • 4:
    • 5:
  • JOI 2016
  • JOI 2015
  • JOI 2014
  • JOI 2013
  • JOI 2012
  • JOI 2011
  • JOI 2010
  • JOI 2009
  • JOI 2008
  • JOI 2007
  • JOI 2006

예선

2016년 12월 23일 금요일

Central European Olympiad in Informatics (CEOI) 문제 정리

Central European Olympiad in Informatics (CEOI) 문제는 연도별로 여러 곳에 데이터가 흩어져 있어서 뭐라 말하기 좀 애매한 상황인데, 몇 군데 눈에 띄는 곳만 우선 정리 했습니다.

CEOI 2015 의 경우에 영어 설명과 테스트 데이터가 따로 제공이 되는 곳이 있고,



http://ceoi.inf.elte.hu/tasks-archive/ 에서 년도별로 데이터가 정리되어 있습니다



여기에 없는 경우에는 오른쪽 Blogroll 에 있는 연도를 선택하면 개별 연도의 답이 있는 경우도 있으니 잘 찾아보자 (찾는 문제가 없으면 원제랑 번역 제목이랑 다른 경우도 확인하면 됩니다)




* 다른 곳에 2011, 2010, 2004 년도 데이터가 정리된 곳이 있어서 추가해 둡니다






BOJ 에서는 https://www.acmicpc.net/category/36 에 정리되어 있습니다


2016년 12월 21일 수요일

KTH Chanllenge 문제 정리

KTH Chanllenge 문제는 정답(Solution) 코드와 데이터(Testcase)까지 잘 정리가 되어 있습니다.

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




2016년 12월 18일 일요일

Rocky Mountain Regional 문제 정리


Rocky Mountain Regional 문제의 경우에 데이터와 답안까지 연도별로 잘 정리가 되어 있습니다





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

2016년 12월 17일 토요일

POI Training Camp 문제 정리

POI Training Camp 문제는 정답은 없는 듯 하고, 입출력 데이터는 잘 정리가 되어 있습니다. 💩

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


입출력 데이터는 여기로 .. http://main.edu.pl/en/archive/ontak 가서
년도별 Useful Resources 를 선택해서 문제를 선택하면 받을 수 있다

* 2018. 11. 11: 링크 죽었네요....



2016년 12월 14일 수요일

East Central North America Regional 문제 정리

ACM-ICPC 의 East Central North America Regional 문제들은 정답 코드와 입출력 데이터가 잘 정리되어 있습니다.

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

* 연도별로 링크따라 가면 됩니다...
http://acm-ecna.ysu.edu/past.html






2016년 12월 10일 토요일

University of Virginia High School Programming Contest (UVa HSPC) 문제 정리

University of Virginia High School Programming Contest (UVa HSPC) 문제는 답안과 입출력 데이터가 보기 좋게 한 곳에 잘 있습니다

BOJ 에는 여기에..
https://www.acmicpc.net/category/277


답안과 입출력 데이터가 한 곳(https://acm.cs.virginia.edu/data/) 에 모두 정리되어 있습니다








Southeastern European Regional Contest (SEERC) 문제 정리

ACM-ICPC 의 Southeastern European Regional Contest (SEERC) 문제들은 정답은 없는 듯 하고, 입출력 데이터는 잘 정리가 되어 있습니다.


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

http://acm.ro/ 에 가서 Problems 와 Past Years 로 가면 input and output data 를 선택해서 받을 수 있습니다.





2016년 12월 8일 목요일

Central European Regional Contest (CERC) 문제 정리

ACM-ICPC 의 Central European Regional Contest (CERC) 문제는

답안 코드도 있고, 입출력 데이터도 있고, 설명도 있고... 잘 정리가 되어 있습니다.

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



2017 년의 경우에 현재는 시작 페이지에 링크가 제공이 되고 있네요.



2016년 12월 6일 화요일

Nordic Collegiate Programming Contest(NCPC) 문제 정리

ACM-ICPC 의 Nordic Collegiate Programming Contest(NCPC) 문제들은
깔끔하게 잘 정리가 되어 있네요..

Solutions/정답 코드: O
Testcase(TC)/Input, Output/입출력 데이터: O
Slide describing solutions/문제설명: O
Link: https://ncpc.idi.ntnu.no/
BOJ 정리 페이지: https://www.acmicpc.net/category/46



2016년 12월 4일 일요일

Asia-Pacific Informatics Olympiad (APIO) 문제 정리

Asia-Pacific Informatics Olympiad (APIO) 문제는 아쉽게도 code 형태의 답안은 대부분 없는 듯 하지만, 문제에 대한 설명(영문)은 존재하네요. 입출력 데이터는 기본적으로 제공이 되고요.

BOJ 에서 정리된 곳은
https://www.acmicpc.net/category/48




2016년 11월 20일 일요일

PLU High School Programming Contest 문제 정리

PLU High School Programming Contest 문제들은 정답(Solution)은 제공이 안 되는 듯 하고, 입출력 데이터와 전체 문제는 아래 링크에서 확인할 수 있습니다.

http://www.cs.plu.edu/~blahakd/HSProgrammingContest/



BOJ 에 등록된 문제는 여기에서
https://www.acmicpc.net/category/96

각 연도별로 선택해서 들어가면 Test data 가 데이터가 있습니다.



2016년 11월 2일 수요일

구글 소프트웨어 엔지니어가 되도록 공부하기 위한 완벽한 일일 계획표

github 구경하다가 본 재미있는 글

https://github.com/jwasham/google-interview-university
A complete daily plan for studying to become a Google software engineer.

해외로 취업 준비하시는 분들도 도움이 될 듯...


알고리즘 관련된 내용도 잔뜩 있네요..


2016년 10월 17일 월요일

University of Ulm Local Contest 문제 정리

University of Ulm Local Contest 문제들은 년도별로 답안이 있는 경우도 있고, 없는 경우도 있고... 하지만, TC 는 제공이 되는 경우가 많네요.

BOJ 에서 정리된 곳은
https://www.acmicpc.net/category/170

The Judges' Solutions 에 가면 출제자(?)의 답안이 언어별로 있습니다.



2016년 10월 15일 토요일

USA Computing Olympiad (USACO) 문제 정리

USA Computing Olympiad 문제들도 입출력 데이터와 분석 자료(+예제 답안)들이 제공이 잘 정리되어 있습니다

BOJ 에는 여기에
https://www.acmicpc.net/category/106

아래 summary page 에서 년도와 월을 보고 선택해서 들어가면 됩니다..
http://www.usaco.org/index.php?page=contests


예전 데이터의 한 경우...



최근 데이터 예


2016년 10월 11일 화요일

Waterloo local contest 문제 정리

Waterloo 대학의 Programming Contests 의 문제들

BOJ 에서는 아래 주소에서 정리되어 있고,
https://www.acmicpc.net/category/98

답안이나 Test Data 는 아래 주소에서 정리되어 있습니다.

Solution 이 없는 contest 가 여러 개 있어서 조금 아쉽기도 하고,
지역 대회이다 보니 solution 코드의 질이 편차가 조금 심한 듯한 느낌도 있네요..


https://uwaterloo.ca/international-collegiate-programming-contest/past-local-contest-results





풀어본 문제들..

  • 30 September, 2018
  • 16 June, 2018
  • 10 February, 2018
  • September 30, 2017
  • June 24, 2017
  • March 4, 2017
  • 1 October, 2016
  • 27 September, 2015
  • 20 September, 2014
  • 28 September, 2013
  • 3 March, 2013
  • 13 October, 2012
  • 16 September, 2012
  • 15 July, 2012
  • 2 October, 2011
  • 24 September, 2011
  • 19 June, 2011
  • 2 October, 2010
  • 26 Septemeber, 2010
  • 10 July, 2010
  • 3 October, 2009
  • 27 September, 2009
  • 13 June, 2009
  • 8 February, 2009
  • 4 October, 2008
  • 27 September, 2008
  • 15 June, 2008
  • 29 September, 2007
  • 23 September, 2007
  • 14 July, 2007
  • 30 September, 2006
  • 24 September, 2006
  • 27 May, 2006
  • 25 February, 2006
  • 24 September, 2005
  • 17 September, 2005
  • 11 June, 2005
  • 5 February, 2005
  • 25 September, 2004
  • 19 September, 2004
  • 12 June, 2004
  • 31 January, 2004
  • 27 September, 2003
  • 20 September, 2003
  • 5 July, 2003
  • 25 January, 2003
  • 28 September, 2002
  • 21 September, 2002
  • 1 June, 2002
  • 26 January, 2002
  • 29 September, 2001
  • 22 September, 2001
  • 2 June, 2001
  • 17 January, 2001
  • 30 September, 2000
  • 23 September, 2000
  • 29 January, 2000
  • 2 October, 1999
  • 25 September, 1999
  • 19 June, 1999
  • 31 January, 1999
  • 17 October, 1998
  • 4 October, 1998
  • 6 June, 1998
  • 18 Oct, 1997

2016년 10월 8일 토요일

2016년 9월 29일 목요일

Croatian Highschool Competitions in Informatics(CHCI) 문제 정리

CHCI (Croatian Highschool Competitions in Informatics) 문제들은 아래 사이트에 잘 정리되어 있습니다

Solutions/정답 코드: O
Testcase(TC)/Input, Output/입출력 데이터: O
Link: 각 연도별 참조
BOJ: https://www.acmicpc.net/category/25

http://hsin.hr/coci/ 로 가셔서 연도별로 선택하시면 됩니다.









2016년 9월 24일 토요일

Canadian Computing Competition (CCC) 문제 정리

Canadian Computing Competition (CCC) 문제들도 입출력 데이터가 잘 정리가 되어 제공이 되고 있는데, 답안(Solution)이 C 코드가 아니라서 (2011 년부터 Python) 아쉽네요.

Official
http://www.cemc.uwaterloo.ca/contests/past_contests.html#ccc

Official site 에 link 까지 있는 아래 unofficial site 는 (Python 으로 만든 답안이 있습니다)
http://mmhs.ca/ccc/index.htm

문제에 대한 난이도 및 분류까지 잘 정리되어 참고하기 좋습니다.

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








2016년 9월 21일 수요일

순열과 조합

순열(permutation): 순서 고려, 중복 허용하지 않음
중복순열: 순서 고려, 중복 허용
조합(combination): 순서 고려하지 않음, 중복 허용하지 않음
중복조합: 순서 고려하지 않음, 중복 허용


n 개 중에서 r 개를 뽑아

순열: 순서를 정해서
1, 2, 3
1, 3, 2
2, 1, 3
...
nPr = n!(n-r)!, nP0 은 1, nPn 은 1

중복순열: 순서를 정해서, 중복 허용
1, 1, 1
1, 1, 2
1, 1, 3
...
nTTr = n 의 r 제곱승

조합: 순서에 상관없이 (1, 2, 3, 4 중에 2 개 선택)
1, 2
1, 3
1, 4
2, 3
2, 4
3, 4

n 개 중 r 개를 선택하는 모든 조합의 경우의 수
nCr = n-1Cr-1 + n-1Cr (nC0 = 1)


중복조합: 순서에 상관없이, 중복 허용  (1,2,3,4 중에 2 개 중복 선택)
1, 1
1, 2
1, 3
1, 4
2, 2
...
nHr = n + r-1Cr
nHr = nHr-1 + n-1Hr


코드
 #include <cstdio>  
 #define REPETITION  
 int T[10]; // nPr 을 이루는 각각의 경우를 저장  
 int data[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };  
 void swap(int& i, int& j) {  
   int temp = i;  
   i = j;  
   j = temp;  
 }  
 void process(int q) {  
   int i;  
   for (i = q - 1; i >= 0; i--) {  
     printf("%d ", T[i]);  
   }  
   printf("\n");  
 }  
 void permutation(int n, int r, int q) {  
   if (r == 0) {  
     process(q);  
     return;  
   }  
   int i;  
   for (i = n - 1; i >= 0; i--) {  
     swap(data[i], data[n - 1]); // n-1 을 모든 index 와 swap 해서 다양한 순서를 만든다  
     T[r - 1] = data[n - 1];  
 #ifdef REPETITION  
     permutation(n, r - 1, q);  
 #else  
     permutation(n - 1, r - 1, q);  
 #endif  
     swap(data[i], data[n - 1]);  
   }  
 }  
 void combination(int n, int r, int q) {  
   if (r == 0) {  
     process(q);  
     return;  
   }  
 #ifdef REPETITION  
   else if (n == 0)  
 #else  
   else if (n < r)  
 #endif  
   {  
     return;  
   }  
   else {  
     T[r - 1] = data[n - 1];  
 #ifdef REPETITION  
     combination(n, r - 1, q);  
 #else  
     combination(n - 1, r - 1, q); // n-1Cr-1  
 #endif  
     combination(n - 1, r, q); // n-1Cr  
   }  
 }  
 int main() {  
   permutation(4, 3, 3);  
   combination(4, 2, 2);  
   return 0;  
 }  



정리 출처: http://hochulshin.com/permutation-composition-summary/

조금 응용하면 푸는 문제:
6603번: 로또 (https://www.acmicpc.net/problem/6603)

2016년 9월 16일 금요일

Croatian Open Competition in Informatics(COCI) 문제 정리

*Update: 2022-04-26

COCI (Croatian Open Competition in Informatics) 출처의 문제들은 입출력 데이터와 설명과 답안까지 잘 정리되어 제공되고 있습니다... : )



2016년 9월 13일 화요일

채점 시스템에서만 compile 오류 발생하는 경우 간단한 확인법

예를 들어, Windows 10 에서 Visual Studio Express 2015 버전으로 code 를 만들고 있는데,
제출한 code 가 채점 시스템 상에서는 컴파일 에러가 발생한다고 하면 다음과 같이 간단히 확인해 볼 수 있다.

1) Windows 10 에 설치된 bash shell 을 실행
  => Windows 기능 켜기/끄기에서 Windows Subsystem for Linux 설치 확인

2) sudo apt-get install build-essential 로 g++ 이용할 수 있도록 설치

3) https://www.acmicpc.net/help/judge 로 가서 각 버전별 빌드 옵션 확인
  => 채점 사이트 별로 확인 필요

4) bash shell command 로 가서 a.cc 에 저장해 둔 code 에 대해서 compile test 진행

예) error 가 없는 경우
GOODDAYTOCODE@DESKTOP-70ILJRL:/mnt/c/home$ g++ a.cc -o Main -O2 -Wall -lm --static -std=c++11 -DONLINE_JUDGE
GOODDAYTOCODE@DESKTOP-70ILJRL:/mnt/c/home$

예) error 가 있는 경우
GOODDAYTOCODE@DESKTOP-70ILJRL:/mnt/c/home$ g++ a.cc -o Main -O2 -Wall -lm --static -std=c++11 -DONLINE_JUDGE
a.cc: In function ‘int main()’:
a.cc:4:5: error: ‘a’ was not declared in this scope
     a = 0;
     ^
GOODDAYTOCODE@DESKTOP-70ILJRL:/mnt/c/home$

2016년 9월 12일 월요일

topcoder 사이트의 초보자용 읽을꺼리

topcoder 사이트의 문제는 풀어 볼 엄두도 못 내는 상태지만,
초보자용 가이드 페이지에 좋은 내용이 있는 것 같아서 시간 날 때(?) 읽어 보려고 정리

Data Science Tutorials
https://www.topcoder.com/community/data-science/data-science-tutorials/



1) Dumitru 의 How to Find a Solution

목차
Introduction / 소개
Straight-forward problems that don’t require a special technique / 특별한 기법을 필요로 하지 않는 간단한 문제들
Breadth First Search (BFS) / 넓이 우선 탐색
Flood Fill / 플러드 필
Brute Force and Backtracking / 완전 탐색과 백트래킹
Brute Force / 완전 탐색
Backtracking / 백트래킹
Dynamic Programming / 동적계획법
Hard Drills /
Maximum Flow /
Optimal Pair Matching /
Linear Programming (Simplex) / 선형계획법 (단체법)
Conclusion / 결론


2)

2016년 8월 30일 화요일

ACM-ICPC 문제 모음

ACM-ICPC 문제 모음입니다.

BOJ: https://www.acmicpc.net/category/7

Regionals

  • Africa and the Middle East
    • Arab Collegiate Programming Contest (go)
      • ACM Jordanian Collegiate Programming Contest
      • Lebanese Collegiate Programming Contest
      • Tunisian Collegiate Programming Contest
    • South Africa Regional Contest
      • Beninese Collegiate Programming Contest (go)
  • Asia
    • Bangladesh
    • China
    • India
    • Indonesia (go)
    • Iran
      • Iran Internet Programming Contest
      • Tehran Site (go)
    • Japan (go)
    • Korea
    • Malaysia
      • Malaysia National Programming Contest (go)
    • Mongolia
      • Mongolia National Programming Contest
    • Pakistan
    • Philippines
    • Singapore
    • Taiwan
    • Thailand
      • Asia Thailand National Programming Contest (go)
  • Europe
    • Central European Regional Contest (go)
      • CTU Open Contest (go)
      • Poland Collegiate Programming Contest (go)
      • The Croatian Programming Contest (go)
    • Mid-Central European Regional Contest (go)
    • Northeastern European Regional Contest (go)
      • NEERC Subregional Contest (go)
    • Northwestern European Regional Contest (go)
      • Benelux Algorithm Programming Contest (go)
      • German Collegiate Programming Contest (go)
      • Nordic Collegiate Programming Contest (go)
      • The UK & Ireland Programming Contest (go)
    • Southeastern European Regional Contest (go)
      • All-Ukrainian Collegiate Programming Contest (go)
        • 링크 이동 후 AUCPC-2010 검색
    • Southwestern European Regional Contest (go)
      • Télécom ParisTech Internal Selection
  • Latin America
    • Sub-Regional Brasic do ACM ICPC (go)
    • Latin America Regional Contests (go)
  • North America
    • East Central North America Regional (go)
    • Greater New York Region (go)
    • Mid-Atlantic Regional (go)
    • Mid-Central Regional (go)
    • North America Qualification Contest (go)
    • North Central North America Regional (go)
    • Pacific Northwest Regional (go)
    • Rocky Mountain Regional (go)
      • Alberta Collegiate Programming Contest (go)
    • South Central USA Regional (go)
    • Southeast USA Regional (go)
    • Southern California Regional
  • South Pacific
    • South Pacific Region
      • ACM South Pacific Programming Contest (go)
      • ACM ICPC South Pacific Divsionals (go)
      • ACM South Pacific Central Division (go)
      • ACM South Pacific Eastern Division (go)
      • ACM South Pacific Western Division (go)
      • Australian Programming Contest
      • New Zealand Programming Contest (go)

BOJ: https://www.acmicpc.net/category/4

ACM-ICPC World Finals (go)