Code jam 4

Google Code Jam: Round 2 2020

드디어 Round 2다. 세번의 기회가 주어졌던 Round 1과는 달리 이제는 단판승부이기 때문에 정말 정신 차리고 필요한 모든 연료(?)까지 옆에 비축해두고 대회를 시작했다. 1. Incremental House of Pancakes There are two stacks of pancakes. The height of each stack is given as input. You are to serve customers. The $i$th customer requires $i$ pancakes to be served. $i$ pancakes will be given from the stack of higher height. If the two stacks are of equal height, the le..

Google Code Jam: Round 1A 2020

작년의 코드잼에서는 Round 1A를 놓치고, 1B를 늦게 참여해서 결국 1C에서 779등으로 Round 2 진출에 성공했었다. 올해는 지난 1년간의 발전이 있었던 만큼, 첫 Round 1 대회에서 진출을 기대해보았다. Round 1A 링크이다. 1. Pattern Matching Question Wildcard character인 *가 포함된 문자열들이 입력으로 들어온다. 입력으로 들어온 모든 패턴들을 동시에 만족시키는 문자열을 찾아 출력하면 된다. Solution 예제 입력에 주어진 패턴들이 모두 *로 시작하고 알파벳으로 끝나는 형식(e.g. *abc)이길래, asterisk 기준으로 문자열을 분할했을 때 가장 앞과 뒤에 남는 'prefix'와 'suffix'에 우선 집중하기로 했다. Suffix 만..

Google Code Jam: Qualification Round 2020

코드잼이 돌아왔다는 뜻은 나의 CP 커리어가 만 1년이 되었다는 뜻이다 ㅎㅎ QF 라운드 링크이다. 1. Vestigium 구현 문제이다. 2. Nesting Depth 구현 문제까지는 아니지만 거의 시키는대로 괄호를 열고 닫고 하면 끝난다. $O(n)$ 풀이. 3. Parenting Partnering Returns Worker 2명 스케줄링 문제. 그리디 문제로 유명한 well-known이다. 4. ESAb ATAd 여기서부터는 머리를 좀 썼다. 일정한 규칙으로 변화하는 길이 100의 이진문자열의 현재 상태를 맞추면 끝난다. 제한 조건은 쿼리 150번 이내이다. 쿼리란: index를 물어보면, index의 값을 알려준다. 변화의 규칙은: 쿼리 10번마다 네개의 변화 방법 중 하나가 랜덤하게 일어난다...

2019 대회요약: Code Jam, Hacker Cup, UCPC, SNUPC, ACM-ICPC

앞으로 치를 대회들만 블로그에서 다루기에는 올해에 겪은 대회들이 너무나 많고 소중한 경험이다. 하지만 지난 대회들을 정리하자니 너무 시간이 오래 지나 기억이 나지 않는다... 고로 간략하게 느낌만 적어본다. Google Code Jam 시기: 2019년 4-5월 처음 참여해본 제대로 된 CP 대회. C++ 실력에 자신이 없어(지금도 없다) Python으로만 대회를 진행했던 것 같다. 프로그래밍 경험 자체가 없었던 것은 아니기에 완전 초보자 실력은 아니었다. Qualification Round를 거쳐 Round 1, Round 2까지 진출했었다. 문제들은 여러 알고리즘을 모르더라도 (중고등학교 수준의) 수학적 지식을 동원하면 풀 수 있도록 나왔던 것으로 기억한다. CP가 해볼 만 하다는 느낌을 받았다. F..