시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 (추가 시간 없음) 512 MB77151386.667%

문제

보통 백준 온라인 저지와 같은 사이트에서 문제를 풀며 코드를 작성할 때는 버전 관리 도구(Version Control System, VCS)를 필요로 하지 않는다. 하지만 소프트웨어를 개발하는 과정에서, 여러 명의 개발자와 협업하며 소스 코드를 관리하기 위해서는 VCS를 사용하는 것이 필수적이다.

개발자들은 전세계의 개발자들과 협업하며 오픈소스 소프트웨어를 개발하기 위해 git과 같은 VCS를 사용하고 있다. git이 처음 출시된 것은 2005년의 일이지만, 2008년 GitHub과 같이 웹사이트에 git 저장소를 관리할 수 있게 된 뒤로, 리눅스, 비트코인과 같은 수많은 오픈소스 소프트웨어들이 GitHub을 통해 개발되고 있다.

비트코인과 같은 블록체인 기술에 익숙한 사람이라면 hash가 무엇인지 알 것이다. hash는 임의의 길이의 문자열을 받아, 제한된 길이의 문자열을 만들어내는 함수다. 이 hash 함수가 가져야 할 중요한 조건 중 하나는, 문자열이 단 한 글자만 바뀌더라도 함숫값은 크게 변해야 한다는 것이다. 바로 이 점 덕분에, 이전에 있었던 거래의 기록을 조금이라도 변형하려는 시도가 불가능하여 블록체인 기술이 가능하게 된 것이다.

블록체인 뿐만 아니라 git도 각 commit에 대해 hash를 매긴다. 각 commit에 대해 hash가 어떻게 계산되는지는 https://gist.github.com/masak/2415865 에 잘 설명되어있다.

비트코인을 채굴하듯이, 우리도 간단히 git을 이용해 채굴(?)을 해보자. N번째 commit은 그의 hash가 반드시 N개의 0으로 시작해야 한다. git에서 사용되는 sha1 hash의 길이는 40자이므로, 이론적으로 최대 40명의 사람이 이 문제에 대해 "맞았습니다!!"를 받을 수 있다.

https://github.com/seungwonpark/kudeki-chain 을 fork해서, success.txt의 내용을 자신의 BOJ 아이디로 바꾸는 commit을 한 뒤, commit hash가 N개의 0로 시작하게 될 때까지 수많은 시도(git amend)를 하다가, 성공하면 pull request를 하여 본 저장소의 master 브랜치에 merge되면 된다.

입력

입력은 없다.

출력

https://github.com/seungwonpark/kudeki-chain/blob/master/success.txt 에 자신의 BOJ 아이디가 나와있는 상태에서, 이 문제에 아무거나 출력하는 코드를 제출하면 된다.

예제 입력 1

구데기

예제 출력 1

체인

힌트

손으로 직접 commit의 내용(commit message 등)을 수정해보며 git amend를 하기는 어려울 것이다. 이 문제의 출제 계기가 된 https://github.com/dj-shin/gitchain 에 자동으로 채굴(?)을 해주는 코드가 있으니 참고하자.

N이 10을 넘기만 해도 아주 힘들어질 것이다. 대회 시간 안에 얼마만큼의 N까지 갈 수 있을까?

현재 구데기컵의 영문 명칭은 Ghudegy Cup이지만, 이 문제는 출제 당시의 영문 명칭 Kudeki를 유지한다.

출처

Contest > BOJ User Contest > 구데기컵 > 진짜 구데기컵 2018 ⛓️번

  • 문제를 만든 사람: veydpz

제출할 수 있는 언어

Text

채점 및 기타 정보