본문 바로가기

PS/Educational Codeforces

(12)
Educational Codeforces Round 003. A, B, C, D A. USB Flash Drives ( Флеш-карты ) 문제 https://codeforces.com/contest/609/problem/A Problem - A - Codeforces codeforces.com 문제 요약 여러 크기의 usb가 있는데 최소한의 개수로 주어진 파일 크기를 옮기자 풀이 DP를 사용합니다 usb의 개수가 n이고 주어진 파일 크기가 m일 때, 각 크기 a0, a1, ..., a(n-1)에 대해 순차적으로 보면서 배열 s의 j번째 칸이 의미하는 바를 용량 j를 만들기 위한 최소 usb개수로 정의하면 됩니다. 식으로 나타내면 s[j]가 존재할 때 s[j+a] = min( s[j+a] , s[j] + 1 ) 모든 a에 대해 진행이 되었다면 s의 m번째 칸부터 끝까지 보면서 0..
Educational Codeforces Round 002. A, B, C, D A. Extract Numbers 문제 https://codeforces.com/contest/600/problem/A Problem - A - Codeforces codeforces.com 문제 요약 ,와 ;로 문자열들을 구분한 후 Integer일 경우 첫줄에 그 이외 문자열일 경우 둘째 줄에 각 문자열에 대해 , 로 구분하여 출력한다. (이때, NULL space도 ,와 ;로 구분되어있으면 공백인 문자열로 생각한다) 만약 출력할 문자열이 없다면 "-"를 출력한다. 풀이 strtok 대신 NULL space도 구분해주는 strsep을 사용한다. 한번에 여러개의 파라미터로 parsing하는 방법을 잘 몰라 중첩 for문을 사용하였다. isN이라는 함수에서 문자열이 정수인지 아닌지 판별하고 정수라면 첫번째..
Educational Codeforces Round 001. A, B, C, D A. Tricky Sum 문제 https://codeforces.com/contest/598/problem/A 문제요약 N값이 주어지면 2의 0, 1, ... , inf 제곱들에 대해 음수로 더하고 그 이외 수에 대해 양수로 더한 합을 출력해야한다. 풀이 1+2+...+2^(n-1) = 2^n - 1임을 알고 있을 때 전체에서 2의 제곱수들에 대해 두번 빼주면 된다. 즉, 수식으로 나타내면 다음과 같다. N(N+1)/2 - 2(2^[log_2{N}] -1) 소스코드 #include typedef long long ll; int main(){ int T; scanf("%d",&T); while(T--){ ll n, p=1; scanf("%lld",&n); for(int t=n; t; t>>=1, p1)-(..
Codeforces Educational Round List ( 수정예정 ) 코포 연습을 위한 Codeforces Educational Round List Educational Codeforces Round 001 [ https://codeforces.com/contest/598 ] Educational Codeforces Round 002 [ https://codeforces.com/contest/600 ] Educational Codeforces Round 003 [ https://codeforces.com/contest/609 ] Educational Codeforces Round 004 [ https://codeforces.com/contest/612 ] Educational Codeforces Round 005 [ https://codeforces.com/contest/..