컴퓨터

· 백준
[실버 3] 3273 : 두 수의 합 [알고리즘 분류] 정렬, 투 포인터 1 초 128 MB 31308 11118 8429 35.184% 문제 n개의 서로 다른 양의 정수 a1, a2,..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj) 쌍의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000) 출력 문제의 조건을 만족하는 쌍의 개수를 출력한다. [접근법] 처음에는 정렬을 쓰지 않..
· 일상
늦은 감이 없잖아 있지만, 드디어 골드를 달았다. 앞으로는 성실하게 문제 풀고 실력을 쌓아야지
man page에 검색해 보자. 소속 헤더파일: #include 함수 프로토타입: intopen(const char *path, int oflag, ...); 함수 설명: The file name specified by path is opened for reading and or writing, as specified by the argument oflag; the file descriptor is returned to the calling process. path 파라미터에 명시된 파일을 읽기 또는 쓰기를 위해 여는 함수. 정확히 어떤 동작을 할 건지는 oflag 파라미터로 설정하는데, 리턴 값으로 파일 디스크립터 (file descriptor, fd) 값을 넘겨준다. The flags specifie..
널 포인터 (Null Pointer)는 아무것도 가리키지 않는 포인터이다. 단순히 선언만 되고 초기화되지 않은 포인터와는 다르게 생각해야 한다. 널 포인터를 사용하는 이유는, 단순히 초기화되지 않은 포인터와 다르게 메모리 상의 어떠한 값을 가리키지 않기 때문이다. 초기화되지 않은 포인터는 쓰레기값이 들어갈 수 있기 때문에 어떠한 값을 가리킬 수 있다. #include int main() { int *numPtr = NULL;// NULL은 널 포인터 상수 (정수값 0)으로 정의된다. printf("%p\n", numPtr);// 0x0 "아무것도 가리키지 않음" 을 의미하는 주소값 0이 나온다. return 0; } 또한, 널 포인터는 널 문자 ('\0') 과는 다른 의미를 가진다. 널 포인터를 역참조하..
man page에 검색해 보자. 소속 헤더파일: #include 함수 프로토타입: char*strdup (const char *s1); 함수 설명: The strdup() function allocates sufficient memory for a copy of the string s1, does the copy, and returns a pointer to it. The pointer may subsequently be used as an argument to the function free(3). strdup()함수는 문자열 s1을 복사한 다음에 복사본에 충분한 메모리를 할당을 하고, 그 복사본의 포인터를 반환한다. 해당 포인터를 가지고 free()함수를 쓸 수 있다. If insufficient m..
man page에 검색해 보자. 소속 헤더파일: #include 함수 프로토타입: ssize_t write(int fildes, const void *buf, size_t nbyte); /* fildes는 쓰고자 하는 파일 디스크립터 (file descriptor), buf는 쓰고자 하는 문자의 주소, nbyte는 해당 위치에서 몇 바이트를 출력할 지 */ 함수 설명: write() attempts to write nbyte of data to the object referenced by the descriptor fildes from the buffer pointed to by buf. 첫 번째 인자인 fd값은 주로 0, 1, 2가 사용되는데 각각 표준 입력, 표준 출력, 표준 에러를 의미한다. 두 번..
man page에 검색해 보자. 소속 헤더파일: #include 함수 프로토타입: char * strstr(const char *haystack, const char *needle); /* haystack은 큰 문자열, needle은 큰 문자열 haystack에서 찾을 대상 문자열이다 */ /* 건초더미와 바늘이라는 작명센스가 돋보임 */ 함수 설명: The strstr() function locates the first occurrence of the null-terminated string needle in the null-terminated string haystack. strstr() 함수는 null-terminating 문자열 needle을 null-terminating 문자열 haystack에..
man page에 검색해 보자. 소속 헤더파일: #include 함수 프로토타입: char * strcat(char *restrict s1, const char *restrict s2); char * strncat(char *restrict s1, const char *restrict s2, size_t n); 함수 설명: ** YOU SHOULD ALMOST CERTAINLY USE strlcat() INSTEAD. ** 그냥 strlcat() 쓰자 The strcat() and strncat() functions append a copy of the null-terminated string s2 to the end of the null-terminated string s1, then add a ter..
man page에 검색해 보자. 소속 헤더파일: #include 함수 프로토타입: int strcmp(const char *s1, const char *s2); int strncmp(const char *s1, const char *s2, size_t n); /* s1, s2는 비교할 문자열, n은 앞에서 부터 몇 번째 까지 비교할 건지 */ 함수 설명: The strcmp() and strncmp() functions lexicographically compare the null-terminated strings s1 and s2. strcmp()와 strncmp()함수는 사전순으로 문자열 s1, s2를 비교한다. The strncmp() function compares not more than n c..
man page에 검색해 보자. 소속 헤더파일: #include 함수 프로토타입: size_t strlcpy(char *restrict dst, const char *restrict src, size_t dstsize); /* dst는 복사한 것을 붙여넣을 문자열, src는 복사되는 문자열, dstsize는 붙여넣고 난 후의 dst 길이 */ size_t strlcat(char * restrict dst, const char *restrict src, size_t dstsize); /* dst는 원래 문자열, src는 추가되는 문자열, dstsize는 추가하고 난 후의 dst 길이 */ 함수 설명: The strlcpy() and strlcat() function copy and concatenate s..
kmicety1
'분류 전체보기' 카테고리의 글 목록 (3 Page)