링크 : http://codeforces.com/contest/864 문제도 쉬웠고 잘 풀려서 프리테스트까지는 14~5등 정도였는데 C번에서 진짜 멍청한 실수를 해가지고 시스템 테스트에서 나가는 바람에 153등으로 미끄러졌다 ㅠㅠ 바로 퍼플 다시 복귀할 좋은 찬스였는데 참 아쉽. 코드포스는 할 때마다 내가 참 주의성 부족하게 코드를 짠다는 걸 느끼게 된다. 좀 더 엄밀하게 코드 테스트하는 습관을 들여야하는데... A. Fair Game문제 설명에 충실하게 짜기만 하면 된다. B. Polycarp and Letters이 문제도 그냥 맨 앞에서부터 주어진 문자열 따라가면서 문제 조건에 따라 처리해주면 그리 어렵지 않게 해결할 수 있다. A번도 그렇고 B번도 그렇고 요런 문제들은 풀이를 어떻게 설명해야 할 지..
링크 : http://tenka1-2017.contest.atcoder.jp/ C,D 두 문제 풀고 285등. 사실 E,F번 둘 다 내가 풀기엔 좀 어려운 문제들이라 어차피 두 문제밖에 못 풀었을 것 같긴 한데, D번 문제가 그렇게 까다로운 문제가 아님에도 불구하고 코딩을 제대로 못해서 각종 예외케이스들 때문에 7번이나 오답을 낸 끝에 겨우겨우 통과해서 굉장히 짜증이 났었다. 좀 예외를 잘 생각하고 빈틈없이 코딩하는 습관을 들여야하는데 아직도 그게 잘 안 된다. 레이팅 반영되면 점수 좀 깎일 것 같아서 슬펐는데 이상하게 아직도 레이팅 반영이 안 됨. 언레이티드인가?? C. 4/N 4/N = 1/h+1/n+1/w가 되는 h,n,w를 찾는 문제다. 그렇게 어려운 문제가 아닌데 이상하게 괜히 어렵게 생각했다가..
문제 링크 : https://www.acmicpc.net/problem/5858 1차원 선상에서 소가 좌우로 움직이는데 이 때 두 번 이상 방문한 칸의 개수가 몇 개인지 구하는 문제이다. 움직인 총 거리 상한이 10억으로 주어져 있기 때문에, 단순히 움직이는 걸 시뮬레이션하면서 따라가면 시간 초과가 난다. 왼쪽, 오른쪽으로 이동 방향이 두 가지라 헷갈릴 수 있지만, 왼쪽으로 움직였든 오른쪽으로 움직였든 상관없이 특정 위치를 몇 번 방문했는지만 중요하기 때문에 모두 오른쪽으로 움직인 구간으로 생각하고 구간에 들어갈 때 +1, 나갈 때 -1로 배열을 기록해서 만들어 두면 쉽게 계산할 수 있다. 이 때 값이 바뀌는 양 끝 구간 개수는 최대 2N개 생기고, 이 위치를 저장하고 관리하기 위해 map등의 자료 구조..