Rust, Go, Node.js, Python, Java, C#, PHP, C++ 등의 언어로 진행하는 10억개 데이터 처리 챌린지입니다.
- setup.sh를 실행해서 테스트 데이터를 생성합니다. (17GB 정도의 크기입니다.)
- 입력 데이터 파일에는 다음과 같이 지역과 측정값 쌍이 개행으로 구분된 채로 들어있습니다. 숫자는 정수 값입니다.
Prico;458634
Canada;780790
Central;798387
Athens;799643
Boa Vista;75486
- 해당 파일을 읽어서 지역명을 기준으로 최댓값, 최솟값, 개수, 총합, 평균값을 구하세요.
- 나눗셈을 할 경우 integer 연산으로 나머지는 버립니다.
- 지역명을 기준으로 오름차순 정렬을 합니다.
- 기대하는 출력 형태는 다음과 같습니다.
지역명=최솟값;최댓값;평균값(총합/개수)
Adenarith=1;9999999;5000594(4716533623284/9431947)
Amsterdam=4;9999999;4999133(4715142248923/9431920)
Anápolis=0;9999999;4999550(4718363502090/9437576)
- 일반적인 상용 컴퓨팅 환경에서 동작해야 합니다. amd64, linux. RAM 64GB, 멀티코어 (8코어)
- 하지만 unsafe나 트리키한 흑마술들은 사용 가능합니다.
- 제출하는 폴더나 소스파일의 이름은 식별 가능하게 닉네임1 or 닉네임-1 같은 형태로 맞춰주세요. 도전 횟수가 느는 만큼 뒤에 붙은 숫자를 증가시켜주시면 됩니다.
버전은 1.80.1입니다.
- rust 경로에 추가 프로젝트를 구성합니다. basic을 복사해도 되고, cargo new로 생성해도 됩니다.
버전은 Go 1.23.2 입니다.
- go/cmd 경로에 새 폴더를 만듭니다.
- go/cmd/basic/main.go 파일을 복사한 뒤에 수정해서 최적화합니다.
버전은 v22.9.0입니다.
- nodejs 경로에 새 파일을 만듭니다.
- nodejs/basic.js 파일을 복사한 뒤에 수정해서 최적화합니다.
버전은 Python 3.12.3입니다.
- python 경로에 새 파일을 만듭니다.
버전은 Ruby 3.2.3 입니다.
- ruby 경로에 새 파일을 만듭니다.
버전은 openjdk 21.0.4입니다.
- java 경로에 새 폴더를 만들고 프로젝트를 구성합니다.
버전은 G++ 13.2.0/Clang 18.1.3입니다.
- cpp 경로에 새 폴더를 만들고 프로젝트를 구성합니다.
버전은 dotnet 8.0.110입니다.
- c# 경로에 새 폴더를 만들고 프로젝트를 구성합니다.
- dotnet new로 직접 생성해도 좋고,
- basic을 복제해서 사용해도 좋습니다.
버전은 8.2.2입니다.
- php 경로에 새 소스파일을 작성합니다.
버전은 V13.2.2.5입니다.
- erlang 경로에 분리된 새 폴더와 소스파일을 작성합니다.
버전은 0.13.0입니다.
- zig 경로에 새 파일 혹은 새 폴더를 만들고 소스코드를 작성합니다.
Rank | Lang | Code | time |
---|---|---|---|
1 | C++ (GCC) | libertyrapid | 903 ms |
2 | Rust | s576air | 1304ms |
3 | Go | lemon-mint(v2) | 1566ms |
4 | Go | lemon-mint(v1) | 1578ms |
5 | Go (GCC) | lemon-mint(v3) | 1646ms |
6 | Rust | whitetac(v2) | 1736ms |
7 | Rust | whitetac(v1) | 1986ms |
8 | C# | rudty | 2049ms |
9 | Node.js | sunrabbit(v2) | 20958ms |
10 | Rust | Basic | 75072ms |
11 | Go | Basic | 78757ms |
12 | Java (ParallelGC) | Basic | 85782ms |
13 | C++ (GCC) | Basic | 86765ms |
14 | C++ (Clang) | Basic | 93906ms |
15 | Java (G1GC) | Basic | 94091ms |
16 | Java (ZGC) | Basic | 95413ms |
17 | C# | Basic | 125583ms |
18 | PHP | Basic | 127756ms |
19 | Node.js | sunrabbit(v1) | 222781ms |
20 | Node.js | prravda1 | 272899ms |
21 | Node.js | Basic | 353561ms |
22 | Python | Basic | 508417ms |
23 | Ruby | Basic | 604528ms |
24 | Zig | Basic | 1641754ms |
25 | Erlang | Basic | 1957916ms |