전체 글 102

sizeof는 함수? 연산자?

sizeof는 함수? 연산자?C에서 sizeof는 함수로 착각하기 쉽지만 연산자로 불린다.sizeof는 다음과 같은 내용에서 함수(function)와 차이가 있다.type을 피연산자로 받을 수 있음 sizeof(int)괄호가 불필요 함 printf("%d\n", sizeof a);주소 출력이 안됨 printf("%p", sizeof);런타임 단계에서 실행되지 않음. sizeof a++ 은 a를 수정 하지 않음sizeof의 피연산자는 void 또는 함수 타입을 제외한 모든 타입을 받을 수 있음 참조https://stackoverflow.com/questions/1393582/why-is-sizeof-considered-an-operator

아카이빙/C, C++ 2018.05.26

[C/C++] define, NULL, sizeof 헷갈리는 예시들

[C/C++] define, NULL, sizeof 헷갈리는 예시들 예시1)#define A 12345 #define B 12345678910111213 ​ int main(){ printf("%d %d", sizeof(A), sieof(B)); return 0; }define 전처리기로 상수를 정의할 때, 형변환이 자동으로 되는지 궁금했음.결과는 4, 8로 자동 형변환이 된다고 생각하면 될 듯.다음과 접미사를 통해 명시적으로 타입을 선언할 수 있다.U, LL 등도 가능함.#define var1 10i8 // char '2' #define var2 10ui8 // unsigned char ​ #define var3 10i166 // short #define var4 10ui16 // unsigned sh..

아카이빙/C, C++ 2018.05.24

정렬된 두 배열을 병합하기

정렬된 두 배열을 병합하기문제정렬된 두 배열을 한 배열에 병합하는 알고리즘을 구현해보자.arr1은 arr2를 포함할 충분한 공간이 있음. 예시Input : arr1[20] = {1, 5, 9, 10, 15, 20}; arr2[10] = {2, 3, 8, 13}; Output : arr1[20] = {1, 2, 3, 5, 8, 9, 10, 13, 15, 20}; null값을 제외한 배열의 길이 구하기int arrlen(int arr[], int left, int right) { int mid = (left + right) / 2; if (arr[mid] == NULL) { if (mid == 0) { return 0; }else if (mid && arr[mid - 1] != NULL) { return m..

아카이빙 2018.05.24

백준 14728번 - 벼락치기

백준 14728번 - 벼락치기https://www.acmicpc.net/problem/14728 문제ChAOS(Chung-ang Algorithm Organization and Study) 회장이 되어 일이 많아진 준석이는 시험기간에도 일 때문에 공부를 하지 못하다가 시험 전 날이 되어버리고 말았다.다행히도 친절하신 교수님께서 아래와 같은 힌트를 시험 전에 공지해 주셨다. 내용은 아래와 같다.여러 단원을 융합한 문제는 출제하지 않는다.한 단원에 한 문제를 출제한다. 단, 그 단원에 모든 내용을 알고 있어야 풀 수 있는 문제를 낼 것이다.이런 두가지 힌트와 함께 각 단원 별 배점을 적어 놓으셨다. 어떤 단원의 문제를 맞추기 위해서는 그 단원의 예상 공부 시간만큼, 혹은 그보다 더 많이 공부하면 맞출 수 있..

아카이빙/BOJ 2017.09.26

백준 14501번 - 퇴사

백준 14501번 - 퇴사https://www.acmicpc.net/problem/14501 문제상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다.오늘부터 N+1일째 되는날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다.백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다.각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다.N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1d 2d 3d 4d 5d 6d 7d Ti 3 5 1 1 2 4 2 Pi 10 20 10 20 15 40 2001일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은..

아카이빙/BOJ 2017.09.06

백준 11657번 - 타임머신

백준 11657번 - 타임머신https://www.acmicpc.net/problem/11657 문제N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 버스가 M개 있다.각 버스는 A, B, C로 나타낼 수 있는데, A는 시작도시, B는 도착도시, C는 버스를 타고 이동하는데 걸리는 시간이다.시간 C가 양수가 아닌 경우가 있다. C = 0인 경우는 순간 이동을 하는 경우, C < 0인 경우는 타임머신으로 시간을 되돌아가는 경우이다.1번 도시에서 출발해서 나머지 도시로 가는 가장 빠른 시간을 구하는 프로그램을 작성하시오. 입력첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다.둘째 줄부터 M개의 줄에는 버스 노선의 정보 A,..

아카이빙/BOJ 2017.09.06

백준 2188번 - 축사 배정

백준 2188번 - 축사 배정https://www.acmicpc.net/problem/2188 문제농부 John씨는 그의 소 축사를 갓 완성하였다.축사 환경을 쾌적하게 유지하기 위해서, John씨는 축사를 N개의 칸으로 구분하여 두고, 한 칸에는 한 마리의 소만을 들어가도록 하였다.첫 주에는 소들을 임의적으로 칸에 배정하여 축사를 운영하였으나, 곧 문제가 발생하게 되었다. 자신들이 희망하는 몇 개의 축사 외에는 들어가기를 거부하는 것이다.농부 John씨를 도와 최대한 많은 수의 소가 축사에 들어갈 수 있도록 하는 프로그램을 작성하시오.축사의 번호는 1부터 M까지 매겨져 있다고 한다. 입력첫째 줄에 소의 마릿수 N과 축사의 개수 M이 주어진다. (1

아카이빙/BOJ 2017.09.06

백준 9461번 - 파도반 수열

백준 9461번 - 파도반 수열https://www.acmicpc.net/problem/9461 문제오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다.첫 삼각형은 정삼각형으로 변의 길이는 1이다.그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다.나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다.파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다.P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다.N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다.각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100) 출력각 테..

아카이빙/BOJ 2017.09.01

백준 6593번 - 상범 빌딩

백준 6593번 - 상범 빌딩https://www.acmicpc.net/problem/6593 문제당신은 상범 빌딩에 갇히고 말았다.여기서 탈출하는 가장 빠른 길은 무엇일까?상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다.각 정육면체는 금으로 이루어져 있어 지나갈 수 없거나, 비어있어서 지나갈 수 있게 되어있다.당신은 각 칸에서 인접한 6개의 칸(동,서,남,북,상,하)으로 1분의 시간을 들여 이동할 수 있다.즉, 대각선으로 이동하는 것은 불가능하다.그리고 상범 빌딩의 바깥면도 모두 금으로 막혀있어 출구를 통해서만 탈출할 수 있다.당신은 상범 빌딩을 탈출할 수 있을까? 만약 그렇다면 얼마나 걸릴까? 입력입력은 여러 개의 테스트 케이스로 이루어지며, 각 테스트 케이스는 세 개의 정수..

아카이빙/BOJ 2017.09.01

백준 1005번 - ACM Craft

백준 1005번 - ACM Crafthttps://www.acmicpc.net/problem/1005 문제서기 2012년! 드디어 2년간 수많은 국민들을 기다리게 한 게임 ACM Craft (Association of Construction Manager Craft)가 발매되었다. 이 게임은 지금까지 나온 게임들과는 다르게 ACM크래프트는 다이나믹한 게임 진행을 위해 건물을 짓는 순서가 정해져 있지 않다. 즉, 첫 번째 게임과 두 번째 게임이 건물을 짓는 순서가 다를 수도 있다. 매 게임시작 시 건물을 짓는 순서가 주어진다. 또한 모든 건물은 각각 건설을 시작하여 완성이 될 때까지 Delay가 존재한다.위의 예시를 보자.이번 게임에서는 다음과 같이 건설 순서 규칙이 주어졌다. 1번 건물의 건설이 완료된다..

아카이빙/BOJ 2017.09.01