분류 전체보기 541

C] 공용체(Union) 간단 정리

공용체(Union)는 기본적으로 구조체와 같은 선언 문법과 사용법이 동일한데, 가장 큰 차이점은 구조체 내의 멤버 변수들은 각자에게 할당된 메모리가 있으며 서로의 공유하지 않는데, 공용체는 멤버 변수 중 가장 큰 자료형의 공간을 공유하는 특성을 가지고 있음. 공용체를 선언할 때는 union 키워드를 사용. union {int i;short s[2];} u; 위 공용체의 크기를 sizeof()를 이용해 확인하면 4가 반환된다. 가장 큰 자료형이 int형이고 int형은 4바이트를 차지하기 때문이다. 만약 공용체 u가 구조체였다면 sizeof()를 통해 구조체 크기를 확인하면 4+2*2=8로 나왔을 것이다. 공용체는 기본적으로 공용체의 선두 번지와 같은 공간에 배치되어서 i의 번지와 s의 번지가 동일하게 된다..

백준] 14696 - 딱지놀이(KOI 2017)

시간 제한 : 2초메모리 제한 : 512MB 입력표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 딱지놀이의 총 라운드 수를 나타내는 자연수 N이 주어진다. N 은 1 이상 1,000 이하이다. 다음 줄에는 라운드 1에서 어린이 A가 내는 딱지에 나온 그림의 총 개수 a가 주어진다. a는 1 이상 100 이하이다. 뒤따라 나오는 a개의 정수는 어린이 A가 낸 딱지의 그림을 나타내는데, 각각 4, 3, 2, 1 중 하나의 값이다. 4, 3, 2, 1의 순서대로 주어지지 않을 수 있음에 주의하라. 다음 줄에는 라운드 1에서 어린이 B가 내는 딱지에 나온 그림의 총 개수 b가 주어진다. b도 1 이상 100 이하이다. 뒤따라 나오는 b개의 정수는 어린이 B가 낸 딱지의 그림을 나타내는데, 역시 4, 3, ..

카테고리 없음 2018.06.24

C++ 캐스트 연산자(Cast Operator)

C언어에서의 캐스트 연산자는 아주 간단했다. int a=10;double d;d=(double)a; 이러한 코드의 장점은 사용자가 원하는대로 변수 타입을 변경할 수 있어서 편리하고 코드를 유연하게 짤 수 있고 void* 같은 타입 때문에 필연적으로 사용해야 할 때 사용할 수 있다는 점이다.변환 가능성을 막론하고 작성한 코드 그대로 돌아가기 때문에, 그 자유로움이 프로그램의 안전성을 위협한다. C++에서는 이러한 캐스트 연산자의 단점을 보완하고자 네 가지의 캐스트 연산자를 도입했다. static_castdynamic_castconst_castreinterpret_cast cast_operator (var) static_cast강제 변환이 아닌 논리적으로 변환이 가능한 타입에 대해서 캐스팅 실시함.일반적으로..

백준] 2502 - 떡 먹는 호랑이(KOI 2008 지역본선)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에는 할머니가 넘어온 날 D (3≤D≤30)와 그 날 호랑이에게 준 떡의 개수 K (10≤K≤100,000)가 하나의 빈칸을 사이에 두고 주어진다. 출력첫줄에 첫 날에 준 떡의 개수 A를 출력하고 그 다음 둘째 줄에는 둘째 날에 준 떡의 개수 B를 출력한다. 이 문제에서 주어진 D, K에 대해서는 항상 정수 A, B (1≤A≤B)가 존재한다. 소스코드 #include using namespace std; int main(void) { int first[31] = { 0, 1, 0, }, second[30] = { 0, 0, 1, }; int day, rc; int d1=1, d2=1; int i, j; cin >> day >> rc; for (i =..

백준] 10156 - 과자(KOI 지역본선 2014)

시간 제한 : 1초메모리 제한 : 256MB 입력첫 번째 줄에는 과자 한 개의 가격 K, 사려고 하는 과자의 개수 N, 현재 동수가 가진 돈 M이 각각 공백을 사이에 두고 주어진다. 단, K, N은 1,000 이하의 양의 정수이고, M은 10만 이하의 양의 정수이다. (1 ≤ K, N ≤ 1,000, 1 ≤ M ≤ 100,000이다.) 출력첫 줄에 동수가 부모님께 받아야 하는 돈의 액수를 출력한다. 소스코드 #include using namespace std; int main(void) { int k, n, m; cin >> k >> n >> m; if (k*n > m) cout

비트맵(bmp) 구조체 구조

typedef struct BITMAPFILEHEADER // 비트맵 파일 헤더 구조체{unsigned short bfType; // BMP 파일 매직넘버unsigned int bfSize; // 파일 사이즈unsigned short bfReserved1; // 예약, 0unsigned short bfReserved2; // 예약unsigned int bfOffBits; // 비트맵 데이터 시작 위치} BITMAPFILEHEADER; typedef struct BITMAPINFOHEADER // 비트맵 정보 헤더 구조체{unsigned int bfSize; // 현재 구조체 사이즈int biWidth; // 이미지 가로int biHeight; // 이미지 세로unsigned short biPlanes; ..

백준] 10546 - 배부른 마라토너(COCI 2014/2015)

시간 제한 : 1초메모리 제한 : 64MB 입력첫째 줄에는 참가자 수 N이 주어진다. (1 ≤ N ≤ 105)N개의 줄에는 참가자의 이름이 주어진다.추가적으로 주어지는 N-1개의 줄에는 완주한 참가자의 이름이 쓰여져 있다. 참가자들의 이름은 길이가 1보다 크거나 같고, 20보다 작거나 같은 문자열이고, 알파벳 소문자로만 이루어져 있다.참가자들 중엔 동명이인이 있을 수도 있다. 출력마라톤을 완주하지 못한 참가자의 이름을 출력한다. 소스코드 #include #include #include using namespace std; int main(void) { map list; int n; string tmp; cin >> n; for (int i = 0; i > tmp; if (l..

백준] 4949 - 균형잡힌 세상(ACM-ICPC Regionals)

시간 제한 : 1초메모리 제한 : 128MB 입력하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다.입력의 종료조건으로 맨 마지막에 점 하나(".")가 들어온다. 출력각 줄마다 해당 문자열이 균형을 이루고 있으면 "yes"를, 아니면 "no"를 출력한다. 소스코드 #include #include #include using namespace std; int main(void) { string tmp; while (1) { getline(cin, tmp); if (tmp == ".") break; int len = tmp.length(); bool check = true; stack ..