반응형

전체보기 408

[C언어/C++] clock 함수를 통한 알고리즘 시간 측정

안녕하세요.BlockDMask 입니다.오늘은 "내가 짠 알고리즘이 어느정도 시간이 걸렸나?" 라는 것을 알 수 있게 시간을 잴 수 있는 코드에 대해서 알아보겠습니다. 1. clock() 함수C 언어 에서는 , C++ 에서는 헤더파일에 들어있습니다.기본형 clock_t clock(void); //프로그램이 시작하고 나서 부터 프로세서가 소모한 시간을 리턴합니다. return 타입인 clock_t는 clock ticks 를 뜻합니다.CLOCKS_PER_SEC는 메크로 인데 clock_t 의 값을 CLOCKS_PER_SEC으로 나누면 소모한 시간(clock ticks per second)이 나옵니다.2. 사용 방법123456789101112131415161718192021#include#include#incl..

퀵 정렬 (Quick Sort) 이론과 코드

안녕하세요. BlockDMask 입니다. 오늘은 지난시간에 언급 한 대로 퀵 정렬, 퀵 소트(Quick Sort)에 대해 알아보겠습니다.부족한 부분이나 이상한 부분이 있으면 댓글 부탁드리겠습니다. 0. 원리Quick sort(퀵 소트)는 divide and conquer (분할 정복) 방식으로 정렬을 수행합니다.Quick sort(퀵 소트)는 n 개의 데이터를 정렬할때, 평균적으로 O(nlogn) 번을 수행하고 최악의 경우 O(n^2) 번을 수행합니다.평균적으로 log 의 시간복잡도를 가지기 때문에 다른 정렬 알고리즘에 비해 속도가 빠르므로, 사용빈도가 높습니다. 과정 : 리스트에서 임의의 원소를 고릅니다. 그것을 pivot이라 합니다. (일반적으로 가운데 원소를 고릅니다.) : pivot의 앞에는 pi..

[백준 10818] 최소, 최대

안녕하세요. BlockDMask 입니다.팀 프로젝트를 하느라 정신이 없네요;;오늘자 문제 풀어보겠습니다.0. 제목백준 10818 최소, 최대BOJ 10818 최소, 최대1. 문제 설명 N 개의 정수가 주어집니다. 그 정수 중에서 최소값과 최대값을 구하여 출력하는 문제입니다. 첫째 줄에 정수의 개수 N (1 알고리즘(Solution) 입력받는 n의 수 만큼 반복문을 돌면서 새로 들어온 정수(tmp)와 최소값(ans_min)과 최대값(ans_max)을 비교합니다.? 연산자를 이용하여 비교하고 true : false 에 맞게 값이 변경 됩니다. > 출력(Output)형태에 맞게 출력합니다.최소값(ans_min)과 최대값(ans_max)를 출력합니다. 3. 소스코드 1234567891011121314151617..

[데통] 프로토콜(Protocol) 이란?

안녕하세요 BlockDMask 입니다.오늘은 "프로토콜(Protocol) 이란 무엇인가?" 에 대해 알아보겠습니다. > 프로토콜(Protocol)이란?정의 - 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 통신 프로토콜은 신호 체계, 인증, 그리고 오류 감지 및 수정기능을 포함할 수 있다. (위키백과) - 통신 프로토콜은 통신(데이터를 주고 받는) 상호간에 미리 약속된 규칙, 규약입니다. - 송신자와 수신자 사이에 "데이터 구조는 이런식으로하고", "그건 이런의미이고", "속도는 어느정도로 보내고" 그런식으로 보내기로하자. 라고 약속을 한 것 입니다. - 비유를 하자면, 어디 기업에 내 이력서를 보낸다고 할때 메모장에 그냥 줄 글로 한자 ..

[백준 2566] 최댓값

안녕하세요. BlockDMask 입니다.중간고사가 곧 시작하는군요.. 그래도 오늘도 문제 달립니다.170905 문제 빼먹음 -> 171017 완료.0. 제목 백준 2566 최댓값 BOJ 2566 최댓값 1. 문제 설명 아래 그림과 같이 9x9 격자판에 쓰여진 81개의 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지를 출력하는 프로그램을 작성하시오. 그림과 같이 최대 81개의 수가 주어질때, 이 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. -- 입력 : 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. -- 출력 : 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을..

[백준 2501] 약수 구하기

안녕하세요. BlockDMask 입니다.오늘도 간단하게 전체 탐색법을 이용하여 약수를 구하는 문제를 풀어보았습니다.0. 제목백준 2501 약수 구하기BOJ 2501 약수 구하기1. 문제 설명 약수란어떤 자연수 a, b 가 있을때a를 b로 나누었을때 나머지가 0 이면 b는 a의 약수라 한다. 12 를 예로 들자면 12 / 1 = 12 ---> 012 / 2 = 6 ---> 012 / 3 = 4 ---> 012 / 4 = 3 ---> 012 / 5 = 2 ---> 212 / 6 = 2 ---> 012 / 7 = 1 ---> 512 / 8 = 1 ---> 412 / 9 = 1 ---> 312 / 10 = 1 ---> 212 / 11 = 1 ---> 112 / 12 = 1 ---> 0 12 의 약수는 1, 2,..

[데통] Wireshark (와이어샤크) 사용방법

1. 와이어샤크 화면 구성 - 와이어샤크 패킷을 캡쳐하게 되면 이렇게 화면이 나옵니다. 1번 영역은 - Packet List(패킷 리스트 영역) 입니다. : No - 패킷의 일련 번호를 표시합니다. (패킷 숫자를 알 수도 있음) : Time - 패킷 캡쳐를 시작하고 걸린 시간을 나타냅니다. : Source - 패킷의 출발지 주소 : Destination - 패킷의 목적지 주소 : Protocol - 프로토콜의 이름 : Length - 패킷의 길이(크기)를 bytes로 나타내줍니다. : Info - 와이어샤크가 스스로 분석하여 packet에서 가장 중요한 정보를 판단해서 보여줍니다.2번 영역은 - Packet Details(패킷 상세 영역) 입니다. : Packet List영역에서 패킷을 선택했을때, 선택..

[C++] sort algorithm 정리 및 예시

안녕하세요BlockDMask 입니다.오늘은 C++ STL 에서 제공하는 알고리즘 중에 sort 알고리즘에 대해 알아보겠습니다.0. sort algorithm sort 알고리즘은 헤더파일에 속해있습니다.sort(start, end)를 이용하여 [start, end) 의 범위에 있는 인자(element)를 오름차순(default)으로 정렬해주는 함수 입니다. start를 포함하고 end를 포함하지 않는 구간. (iterator를 생각하면됩니다.)quick sort(퀵 정렬)을 기반으로 함수가 구현되어있어, 평균 시간복잡도는 n log n 입니다. 따로 quick sort를 구현할 필요 없이 C++ STL에서 제공해주는 sort 함수를 이용하면 편리하게 정렬 할 수 있습니다.1. 원형 및 사용법원형templa..

[백준 9506] 약수들의 합

안녕하세요. BlockDMask 입니다.조금 간단한 문제를 풀어보았습니다.약수들의 합을 구하는 문제 입니다. 170907 문제 빼먹음 -> 171016 완료0. 제목백준 9506 약수들의 합BOJ 9506 약수들의 합1. 문제 설명 n의 범위가 (2 < n < 100,000)인 어떤 수 n에 대해 숫자 n이 자신을 제외한 약수들의 합으로 나타내어 지면, 그 수를 '완벽한 수'라고 한다. 예를 들으 6은 6 = 1 + 2+ 3 이므로 완벽한 수이다. n이 완벽한 수 인지 아닌지 판단해주는 프로그램을 작성하면 됩니다. -- 입력 --테스트 케이스마다 한 줄 간격으로 n 이 주어집니다. 입력이 마지막엔 -1 이 주어집니다. -- 출력 --테스트케이스 마다 한줄에 하나씩 출력해야합니다.n이 완벽한 수라면, n ..

[데통] Wireshark 란? (+설치방법)

1. wireshark 란? - 위키피디아 : Wireshark is a free and open source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. - 와이어샤크는 network상의 packet을 분석해서 보여주는 무료 오픈 툴(tool)입니다. - packet을 분석하는 일은 wireshark가 하지만, packet을 포착(capture)하는 기능은 다른 도구(libpcap, WinPcap driver)가 진행 합니다. : 패킷 캡쳐 드라이버(WinPcap - 윈도우용, libpcap - 유닉스/리눅스용)가..

반응형