728x90

분류 전체보기 636

C#] Dispose 호출해야 하는 경우와 그렇지 않아야 하는 경우

Dispose를 호출해야 하는 경우 '의심 스럽다면 처분 하는 원칙'에 따름. Windows Forms의 컨트롤들, 파일 및 네트워크 스트림, 네트워크 소켓, GDI+의 펜/브러시/비트맵 등이 이에 해당. Dispose를 호출하지 말아야 하는 경우 현재 코드가 객체를 소유한 것이 아니고, 정적 필드나 속성을 통해 공유 객체를 얻은 경우 System.Drawing namespace의 형식에서 정적 필드 및 속성을 통해 얻은 GDI+ 객체 - 응용 프로그램 종료 시점까지 사용 Dispose 메서드가 현재 상황에 맞지 않는 경우 System.IO namespace와 System.Data namespace의 형식들 MemoryStream - 차후 스트림을 다시 쓰는 경우 StreamReader, StreamWr..

백준] 2583 - 영역 구하기(한국정보올림피아드 2006; KOI 2006)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오른쪽 위 꼭짓점의 x, y좌표값이 빈칸을 사이에 두고 차례로 주어진다. 모눈종이의 왼쪽 아래 꼭짓점의 좌표는 (0,0)이고, 오른쪽 위 꼭짓점의 좌표는(N,M)이다. 입력되는 K개의 직사각형들이 모눈종이 전체를 채우는 경우는 없다. 출력첫째 줄에 분리되어 나누어지는 영역의 개수를 출력한다. 둘째 줄에는 각 영역의 넓이를 오름차순으로 정렬하여 빈칸을 사이에 두고 출력한다. 소스코드#include #include #include #include usin..

백준] 5556 - 타일(일본정보올림피아드 2011;JOI 2011)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 한 변의 길이 N이 주어진다. (1 ≤ N ≤ 109) 둘째 줄에는 창영이가 제거한 타일의 개수 K가 주어진다. (1 ≤ K ≤ 1000) 다음 줄부터 K개 줄에는 창영이가 제거한 타일의 위치 ai bi가 제거한 순서대로 주어진다. (1 ≤ ai ≤ N, 1 ≤ bi ≤ N) 타일은 왼쪽에서 ai번째, 위에서 bi번째에 있다. 같은 타일을 두 번 이상 제거하는 경우는 없다. 출력창영이가 제거한 순서대로 타일의 색상을 출력한다. 빨간색은 1, 파란색은 2, 노란색은 3을 출력한다. 소스코드#include using namespace std; int main(void) { int N, K, half; cin >> N >> K; half = N / 2..

백준] 10451 - 순열 사이클(ACM-ICPC Regionals Daejeon)

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 순열의 크기 N (2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 순열이 주어지며, 각 정수는 공백으로 구분되어 있다. 출력각 테스트 케이스마다, 입력으로 주어진 순열에 존재하는 순열 사이클의 개수를 출력한다. 소스코드#include #include using namespace std; vector arr; vector check; void sequence(int idx) { if (check[idx] == false) { check[idx] = true; sequence(arr[idx]); } else return; } int main(void) { int T; cin >..

백준] 1406 - 에디터(CHCI 2004)

시간 제한 : 0.3초메모리 제한 : 512MB 입력첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수를 나타내는 정수 N(1≤N≤500,000)이 주어진다. 셋째 줄부터 N개의 줄에 걸쳐 입력할 명령어가 순서대로 주어진다. 명령어는 위의 네 가지 중 하나의 형태로만 주어진다. 출력첫째 줄에 모든 명령어를 수행하고 난 후 편집기에 입력되어 있는 문자열을 출력한다. 소스코드#include #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); cout.tie(NULL); st..

백준] 14582 - 오늘도 졌다(2017 고려대학교 프로그래밍 대회)

시간 제한 : 1초메모리 제한 : 64MB 입력첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다.두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회 말, 2회 말, ..., 9회 말에 낸 득점이 주어진다.한 팀이 한 회에 낸 득점은 모두 0 이상 20 이하이며, 스타트링크 걸리버스의 총 득점이 울림 제미니스의 총 득점보다 많다.경기는 1회 초->1회 말->2회 초->...->9회 초->9회 말 순서로 진행된다. 출력만약 울림 제미니스가 역전패를 했다면 'Yes'를 출력한다.그렇지 않으면 'No'를 출력한다 소스코드#include #include using namespace std; int main(voi..

백준] 1351 - 무한 수열

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 3개의 정수 N, P, Q가 주어진다. 출력첫째 줄에 A_N을 출력한다. 소스코드#include #include using namespace std; map dp; long long recursive(long long N, long long& P, long long& Q) { if (N == 0) return 1; else if (dp[N]) return dp[N]; return dp[N] = recursive(N / P, P, Q) + recursive(N / Q, P, Q); } int main(void) { long long N, P, Q; cin >> N >> P >> Q; cout

백준] 1598 - 꼬리를 무는 숫자 나열

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 원숭이가 생각한 두 개의 자연수가 주어진다. 각 숫자는 10,000,000 이하이다. 출력첫째 줄에 원숭이가 생각한 두 개의 자연수 사이의 직각거리를 출력한다. 소스코드#include #include using namespace std; int main(void) { int x, y, xw, yw, xh, yh; cin >> x >> y; xw = (x - 1) / 4; yw = (y - 1) / 4; xh = (x-1) % 4; yh = (y-1) % 4; cout

728x90