Codeforces

    [CodeForce Beta Round #4] C. Registration system

    문제 출처 : 링크 Problem - C - Codeforces codeforces.com 문제 자체는 어렵지 않다. 처음으로 등록되는 문자열은 "OK"로 출력하고, 만약 똑같은 문자열이 또 입력되면 숫자를 붙여서 출력해야한다. ex) Input 4 abacaba acaba abacaba acab output OK OK abacaba1 OK abacaba가 3번째에 또 들어오면서 abacaba1로 출력하는 모습을 볼 수 있다. 만약 한번더 들어오면 abacaba2를 출력하면 된다. 이 문제는 시간초과에 빠지기 쉬운 문제다. 왜냐하면 N의 값이 1~100000이다. 만약 브루트포스로 진행하면 N^2으로 100억번의 연산을 해야하는데 문제에 주어진 제한 시간 5초로는 불가능하다. 이 문제는 따라서 해시 테이..

    [CodeForce Beta Round #4] B. Before an Exam

    문제 출처 : 링크 Input으로 요일 수(d)와 최대 시간(sumTime)이 주어진다. 그리고 d만큼 하루에 공부할 수 있는 최소 시간과 최대 시간이 각각 한 줄씩 들어온다. 모든 요일에 주어진 최소 시간만큼은 공부를 해야 하고, 최대 시간과 일치하는 공부 시간을 출력해야 한다. 주어진 요일의 공부시간동안 최대 시간만큼 할 수 없으면 "NO"를 출력하고, 가능하면 "YES"와 함께 요일별 공부시간을 출력해야 한다. 예) 2 5 0 1 3 5 d = 2고, sumTime = 5다. 이틀동안 5시간의 공부를 해야한다. 첫째날은 0~1시간 공부를 할 수 있고, 둘째날은 3~5시간을 공부할 수 있다. 첫째날에 1시간 공부 & 둘째날에 4시간 공부 or 첫째날 0시간 공부 & 둘째날에 5시간 공부 두가지 경우로..