fflush(stdin) 정도는 책을 보시면서 한 두번쯤은 보셨을 거에요. 가끔, 왜 이 함수를 썼는데 동작을 하지 않느냐. 는 질문도 더러 받아본 적이 있습니다. 원형은 다음과 같습니다. 하도 많이 언급이 되다 보니, 그냥 안 보고도 이 함수를 쓰시는 분들이 적지 않게 계실 듯 싶기도 합니다. 코드포스 interactive 문제를 많이 보셨다면, fflush 정도는 많이 써 보셨으리라 생각이 드니, 사용법은 생략해도 무난할 듯 싶습니다. 그런데, 링크에서 보면, 이런 문구가 있습니다. 인풋 스트림에 대해서는, 동작이 정의되지 않는다고 설명이 되어 있습니다. 이것 하나만으로 답변이 끝났네요. stdin은 표준 입출력을 의미합니다. 이것 또한 input과 관련된 것입니다. 따라서, 동작이 정의되지 않고, ..
레퍼런스/예제 검색 결과
문자열 다룰 때, strcpy 함수를 많이 쓰곤 했습니다. 그런데, stpcpy 정도는 알아두어도 크게 손해볼 거 같지는 않았습니다. 백준의 몇몇 문자열 관련 문제들을 풀어보면서 뼈저리게 느끼기도 했고요. man 페이지를 읽어보면 공부할 만한 키워드들이 상당히 많이 나오는데요. 그것들에 대한 자세한 내용들은 하나 하나 시스템에 대해 공부하면서 파 보기로 합시다. 먼저, stpcpy는 strcpy와 하는 일이 매우 유사해 보입니다. src가 가리키는 문자열의 내용을 dest에 복사한다는 것도 같아 보이고요. 그런데, 오늘 배울 함수는 리턴 값이 its end라고 합니다. 이게 무슨 이야기인지 잘 모르겠군요. 코드를 하나 작성해 봅시다. 예제 프로그램은 위와 같습니다. 실행 결과는 어떻게 나왔을까요? 이렇게..
Java에서 객체를 정렬하려면 어떻게 해야 할까요? 기본적으로 어떤 것을 비교 기준으로 삼을지가 중요하다고 했습니다. Key 2개를 비교하는 compare 기반 정렬이라면. 이는 Quick sort, merge sort, Tim sort 등이 그러합니다. 반면에 Key 2개를 비교하면서 정렬하지 않는 것도 있는데요. 대표적으로 기수 정렬이라던지, Count sort 등이 있습니다. Merge Sort는 잘 보면 Key 2개를 가지고 비교하면서, 정복하는 알고리즘임을 알 수 있어요. 그러면, 우리는 어떠한 두 원소를 비교했을 때 어떤 것이 우선 순위가 더 높은지 정하는 게 중요하다고 했습니다. 그러한 기준이 있는 것들은 따로 비교 기준을 정의하지 않아도 됩니다. 그런데, 이런 경우를 생각해 봅시다. 하고 ..
c++에서 vector는 ps를 할 때 상당히 많이 쓰는 자료구조입니다. 현업에서는 얼마나 많이 쓸 지 모르겠습니다만, 몰라서 손해를 볼 구조는 아닌 듯 싶습니다. 한 번에 너무 많이 쓰면 내용이 길어질 듯 싶으니, 3편에서 4편에 걸쳐서 쓰도록 하겠습니다. 오늘은, 2차원으로 선언된 2차원 vector를 어떻게 사용해야 하느냐입니다. 보통, 리턴 값이나 파라미터가 강제가 되는 코딩 테스트의 경우, vector 만 나와도 당황할 수 있어요. 오늘은 이것을 어떻게 읽어내고, 만약에 이 2차원 벡터를 리턴해야 할 일이 있을 때 어떻게 해야 되는지만 보도록 하겠습니다. 먼저 읽어내는 것은 그리 어렵지 않습니다. 어짜피 vector의 vector라고 하면, 동적 배열을 담고 있는 동적 배열이기 때문이에요. 이것..
이번 글에서는, C언어 rand 함수와 srand 함수에 대해서 알아보도록 하겠습니다. 이들에 대한 자세한 원리는 추후에 따로 알고리즘이나 이산수학 카데고리에서 다룰 기회가 있을 듯 싶습니다. 먼저, srand는 1번째 인자로 seed 값만을 받습니다. 그리고, rand 함수는 아무런 인자를 받지 않고, 그냥 (유사)난수만 리턴합니다. 사용법은 그리 복잡하지 않은 듯 싶으니, 프로그램을 한 번 실행시켜 보도록 합시다. 먼저, 시드 값을 0으로 주고, rand 함수를 10번 호출해 보았습니다. 그랬더니, 1804289383, 846930886, ... , 1189641421이 나왔음을 알 수 있어요. 프로그램을 여러 번 실행 시켜도 동일한 결과가 나왔습니다. 그것으로 미루어 보았을 때 처음 시드값에 따라서..
최근댓글