728x90

프로그래밍 410

백준] 2947 - 나무 조각(COCI 2008/2009)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 조각에 써 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. 출력두 조각의 순서가 바뀔때 마다 조각의 순서를 출력한다. 소스코드 #include using namespace std; int main(void) { int arr[5]; for (int i = 0; i > arr[i]; for (int i = 0; i arr[j + 1]) { int tmp; tmp = arr[j]; arr[j] = arr[j + 1]; a..

백준] 3023 - 마술사 이민혁(COCI 2006/2007)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 왼쪽 위 부분의 행의 개수 R과 열의 개수 C가 주어진다. (1 ≤ R, C ≤ 50)다음 R개 줄에는 C개의 문자 '.' 또는 '#'가 주어진다.마지막 줄에는 에러의 위치 A와 B가 주어진다. (1 ≤ A ≤ 2R, 1 ≤ B ≤ 2C) 출력카드 뒷 면 전체 디자인을 총 2R개 줄에 걸쳐서 출력한다. 각 줄은 2C개의 문자로 이루어져 있어야 한다. 소스코드 #include #include #include using namespace std; int main(void) { int r, c, a, b; string parts[50]; string card[100]; cin >> r >> c; for (int i = 0; i < r; i++) cin..

C#] 파일의 MD5 해쉬값 얻어내기

파일의 MD5 해쉬를 얻어내는 코드는 간단하다. private FileInfo item; private byte[] hashcode; item = new FileInfo(filePath); hashcode = MD5.Create().ComputeHash(item.OpenRead()); using System.Security.Cryptography;를 별도로 추가해주면 정상적으로 작동한다. 다만, 해당 코드는 파일의 용량에 따라 해쉬값 연산 속도가 천차 만별이다. 용량이 작은 텍스트 파일 같은 경우는 ms 단위로 처리하고, 용량이 큰 영상 파일 같은 이진 파일은 10초(약 1.5~2GB)가 넘게 걸린다.

백준] 2504 - 괄호의 값(KOI 2008 지역본선)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 괄호열을 나타내는 문자열(스트링)이 주어진다. 단 그 길이는 1 이상, 30 이하이다. 출력첫째 줄에 그 괄호열의 값을 나타내는 정수를 출력한다. 만일 입력이 올바르지 못한 괄호열이면 반드시 0을 출력해야 한다. 소스코드 #include #include #include using namespace std; int main(void) { char arr[32]; stack st; int tmp = 1, sum = 0; bool wrong = false; cin >> arr; for (int i = 0; arr[i]; i++) { if (arr[i] == '(') { tmp *= 2; st.push('('); } else if (arr[i] == '..

백준] 14954 - Happy Number

시간 제한 : 0.2초메모리 제한 : 512MB 입력Your program is to read from standard input. The input consists of a single line that contains an integer, n (1 ≤ n ≤ 1,000,000,000) 출력Your program is to write to standard output. Print exactly one line. If the given number n is a happy number, print out HAPPY; otherwise, print out UNHAPPY. 소스코드 #include #include using namespace std; int main(void) { int n, m; set s;..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 3장 - 1

1. C언어에서 배열에 대하여 다음 중 맞는 것은?답 : (2) 배열의 이름은 포인터와 같은 역할을 한다. 오답노트(1) 3차원 그 이상의 배열도 가능하다.(3) 배열의 인덱스는 0에서 시작한다.(4) 선언한 다음, 실행 도중에 크기를 변경하는 것은 불가능하다. 2. 다음 중 배열에 관한 문장 중 문법에 맞지 않는 것은?답 : (4) char *pb[30]="I am a student"; 해당 배열은 2차원 배열인데, 1차원 배열 초기화 방식을 사용하여 문제가 생긴 것. 3. float a[100]으로 선언되 배열의 시작 주소를 1000번지라고 할 때, 배열의 10번째 요소의 주소는 몇 번지인가?답 : (4) 1040번지 1000+4*10 4. 구조체에 관한 내용 중 틀린 것은?답 : (2) 구조체 변수..

C, C++] 이중 포인터를 이용해 2차원 배열 사용하기

동적 할당을 사용하면 포인터는 배열처럼 사용할 수 있다.여기까진 포인터를 어렴풋이 아는 입문자들도 포인터의 연산과 배열의 인덱스를 연관지어 어렵지 않게 이해할 수 있는 부분인데, 문제는 이중 포인터를 이용해서 2차원 배열을 선언할 때 발생한다. 일단 본론에 들어가기 앞서, 포인터를 이용해서 배열을 사용하는 방법을 그림과 식으로 이해해보자. Cint* ptr = NULL; ptr = (int*)malloc(sizeof(int)*5); C++ int* ptr = nullptr; ptr = new int[5]; 어렵지 않게 요소 5개 짜리 int형 배열을 동적 할당했다. 포인터를 외우듯 공부한 사람들이어도 아래 그림까지는 어렵지 않게 그려내고 이해할 수 있다. 이제 2차원 배열을 어떻게 동적 할당할 지 생각해..

C, C++] stdafx.h와 C2065(선언되지 않은 식별자입니다.)

비주얼 스튜디오(Visual Studio)로 코딩을 입문한 사람들이 자주 마주하는 오류 중 하나가 바로 "stdafx.h", 프리 컴파일 문제일 것이다. 입문자들 입장에선 프리컴파일이나, "stdafx.h" 같은 것이 뭔지 전혀 모르는 상황에서 이것이 무엇이라고 설명하는 건 크게 의미가 없을 것 같고, 이 게시물에서는 저 오류를 만났을 때 해결하는 방법을 이야기해볼까 한다. 이 문제는 특히 stdio.h(printf, scanf)가 아니라 iostream(cin, cout)을 사용할 때 주로 발생하는 문제인데, 이는 기본적으로 stdafx.h에 stdio.h가 미리 컴파일할 헤더 파일로 포함되어 있기 때문이다. stdafx.h // stdafx.h : 자주 사용하지만 자주 변경되지는 않는 // 표준 시스..

백준] 11049 - 행렬 곱셈 순서

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 행렬의 개수 N(1 ≤ N ≤ 500)이 주어진다.둘째 줄부터 N개 줄에는 행렬의 크기 r과 c가 주어진다. (1 ≤ r, c ≤ 500)항상 순서대로 곱셈을 할 수 있는 크기만 입력으로 주어진다. 출력첫째 줄에 입력으로 주어진 행렬을 곱하는데 필요한 곱셈 연산의 최소값을 출력한다. 정답은 2^31-1 보다 작거나 같은 자연수이다. 또한, 최악의 순서로 연산해도 연산 횟수가 2^31-1보다 작거나 같다. 소스코드 #include #include using namespace std; int dp(int arr[], int size) { int** table; int i, j, k, L, tmp, result; table = new int*[size..

728x90