본문 바로가기

정리

속도 측정 원리에 대해 프로그래밍 작업을 하면서 속도 성능에 관심이 가던 중 이참에 아예 속도에 관해 정리를 하고자 이 포스팅을 준비했습니다. 아주 근본적인 부분부터 차근차근 찾아서 정리해봤습니다. 어떤 대상을 측정하기 위해선 기본적으로 기준점이 필요합니다. 예를 들어 사람이 달리는 속도를 측정할 때는 처음시간이라는 기준점을 이용하고 달리기 시작 위치를 기준점으로 잡죠. 마찬가지로 컴퓨터도 프로그램의 속도를 측정하기 위해선 두 가지 기준점이 필요하리라 생각할 수 있습니다. 프로그램의 처리량(?) 그리고 시간이죠. 얼마나 짧은 시간에 얼마나 많은 양의 데이터를 처리했는가 하는 것처럼 두 가지 기준이 필요하죠. 그도 그럴게 속도라는게 그런거죠.ㅎㅎㅎ 한편 컴퓨터에는 성능을 측정하기에 좋은 하드웨어 도구가 있습니다. 바로 CPU 입..
우분투 리눅스 패키지를 공식적으로 소개하는 페이지 http://packages.ubuntu.com/ 유용한 듯하다.
코딩 규칙에 대한 글을 읽고 찾은 몇가지 사이트다 임베디드 시장에는 크게 세 가지 코딩 룰이 있다. CERT-C, MISRA-C , JSF(Joint Strike Fighter) Air vehicle c++ standard 가 그것들이다. 룰 분야 CERT-C 모든 C 소프트웨어 MISRA-C 자동차, 항공, 우주 통신 분야 (제조업에 전체적을 포진) JSF c++ standard 전투기, 폭격기 등 미영 항공기 ... https://www.securecoding.cert.org 카네기 멜론 소속에서 운영하는 시큐어 코딩 가이드가 있는 사이트다. (cert : computer emergency response team , 카네기 멜론대에 있는 팀을 말하는데 흔히 산업에서는 불특정 침해 대응팀으로 알려져있다.) c, c++ , Java, android 등..
linux eclipse 같은 어플 버전별로 프로젝트에서 관리 이클립스 어플리케이션 관리 팁~ 같은 어플인데 다른 버전의 앱을 폰에 올려보고 싶고, 그 여러개를 다 같이 가지고 다니며 테스트하고 싶다면 다음과 같이 해당 앱 프로젝트를 복사할 것. 그 다음 수정해야 할 것은 src 폴더의 패키지 네임 입니다. 이렇게 src를 refactor하고 바꾸면 여러 경고문이 뜨는데 continue 누르면 됩니다. 여기서 끝이 아니라 체크해야할 항목이 있습니다. 1. AndroidManifest.xml 파일 여기서 package= 수정한 패키지에 맞게 이부분을 수정해줘야 합니다. 2. res/values/string.xml 파일여기서 application name을 수정해줘야 합니다. (app_name)? 3. 그 이외에 .... ( res/ 폴더 이내의 다른 것들 그리고 ap..
[해킹]Return to libc 수행 성공 /**** OS : ubuntu 14.04 LTS** Kernel : 3.16.0-30-generic** Compiler : gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4**/ 이걸 성공하기 위해선 OS와 Compiler의 환경 설정을 바꿔야 하는 부분이 있다.그 부분을 해결하면 어렵지 않았음. 1. 스택 사이즈 계산을 정확히 안건 아니지만 대략적으로 알았다.1-1. process의 메모리 할당은 절대적인 것이 아니다. 상대적인 것1-2. 따라서 이 공격도 상대적 메모리 위치를 찾아 공격하는 기법.1-3. compiler는 stack 사이즈를 얼마 할당해야 할지 코드르 돌려보고 벙위를 저장해 놓는다.kernel 의 process 관리쪽을 봐야겠구만2. 기타2-1. gdb 로 여러..
ubuntu vi 전체 유저 설정 방법 ubuntu 사용자이신 분들이 계실겁니다. 또 초보인 관계로 root와 일반 유저의 차이를 잘 모르시는 분들도 계시고요... root 로 작업해야 하는 순간이 올때도 있는데(물론 sudo 로 할 수도 있지만 ^^;) 모든 계정에 vi 설정을 적용하는 방법이 있습니다. 바로 /etc/vim/vimrc 여길 수정하면 됩니다. 근데 열어 보시면 깨끗?하지 않으실 거에요. 이때는 여기에 적용하시면 됩니다.if has("syntax")여기여기여기여기 syntax onendif
빠르게! vi (vim)에서 복사하기 아마 대부분 이 글을 보는 분들은 하나의 terminal에서 vi (vim) 작업을 하고 있고 다른 terminal을 켜서 vi 로 새로운 파일을 만들고 거기에 복사하는 방법을 찾고 계실 것입니다. 편의상 vim 을 vi 이라고 하겠습니다. 저의 결론부터 말씀드리자면 마우스를 이용한 copy & paste 이외에는 방법이 없습니다.. (아직까지는!!!믿으세요 괜히 더 고생하지마시고요...)맨 밑에서 그 이유를 말씀드리겠는데요. 지금은 이유야 어찌됐든 그 대안이 필요합니다. 그래서 그 대안이 뭐냐? sp 입니다. 현재 vi 에서 :sp ./filename->현재 폴더에서 filename을 분할 창에서 연다->ctrl +ww 눌러 본래 창으로 커서를 옮긴다.->커서를 복사할 내용 첫 머리에 놓는다. 그리고 ..
빠르게! 노트북 스마트폰과 연결시 USB 연결 끊김 현상 해결하기 키워드 : USB 유전원 허브, OS의 포트 전원 관리 아마도 몇몇 분들이 스마트폰을 노트북과 연결했을때 자주 끊기는 현상을 겪고 있을 거라 생각하여 이 블로그를 포스팅 합니다. 이런저런 노력을 했는데도 잘 안되는 분들에 한아여 포스팅을 합니다. 따라서 다음과 같은 분은 제조사에 가셔서 드라이버부터 우선 설치해보시길 바랍니다. 1. 나는 드라이버가 뭔지 모르겠다. USB 만 연결해달라!!2. 스마트 폰 USB 연결시 이상이 있다.3. 데스크탑에서도 USB 연결이 안되고 노트북에서도 USB연결이 안된다.4 .연결이 아예 안되고 드라이버가 전부 설치되지 않는다. -> 이분은 어떤 문제인지 잘 모르겠지만... 제어판에 가셔서 USB 드라이버와 관련된 프로그램을 우선 삭제해주시고 재설치하시기 전에 USB 빼시고..
Algospot 문제 DIVIS 문제 내용https://algospot.com/judge/problem/read/DIVIS 문제를 요약하자면 Zoop이라는 행성에서는 62진법을 쓴다. 이때 zoop에서 제시한 어떤 숫자가 있을 때 그 수가 61로 나누어지는가를 따지고 그 결과를 yes or no 로 출력하라는 것이다. 큰 힌트는 이미 문제에 나와있다. 이 문제의 의미는 어떤 수의 특징을 판별하기 위해선 그 어떤 수에 대응하는 다른 대상의 특징을 분석한면 된다는 사실이다. 그리 어려운 문제는 아니었지만 5번만에 통과하게 되었다. 아래는 나의 코드이다. #include #include int zooptoten(char input); int main() { char input[10003]=""; while(scanf("%s", &input)..
Algospot 문제 RATIO 우선 문제 전문은 아래 링크에 있다.https://algospot.com/judge/problem/read/RATIO 여기서 중요한 능력은 - 수의 표현 능력 : 문제에서 가리키는 표현 범위에 맞는 자료형을 선택해야 한다. - 프로그래밍 수학 연산력 : 기본적인 사칙연산이지만 로직상 그것이 연산 가능한 것인지 등을 고려한 코드가 되야 한다.이해가 어려울 문제는 아니다. 그렇다고 실력이 있어서 푼게 아니고 더 많이 실패하다 보니 푼 것이다. 아래는 예전에 만든 코드다. #include using namespace std; int main() { int T; cin >> T; while (T--) { unsigned long long N, M, k; unsigned long long i; int j,R; d..
Algospot 문제 XHAENEUNG 간단히 요약하면 임의의 두 숫자 단어에 대한 사칙 연산과 그 결과 값도 단어로 주어졌을 때 이를 판별하는 문제다. 이때 결과값의 단어의 문자 순서가 바뀌어 출력되어도 본래의 결과값과 같은 구성이라면 맞다고 한다.예를 들어 two + two = fourtwo + two = ourf 둘 다 맞다는 말! 근데 이게 사람 잡는 문제였다.문제 ID시간 제한메모리 제한제출 횟수정답 횟수 (비율)XHAENEUNG1000ms65536kb3802947 (24%)난이도는 낮지만 정답 비율을 봐라... 아래는 내 코드 로직이다.main {while : Cases{initialize varsScan "proposition"sort(input) ; //Sort "the all variables" //but 모두다 정렬할 필요 ..
Algospot 문제 HAMMINGCODE 문제는 Hamming code 7-4에 대해 다룬다.[이슈]#[예외처리]문제를 꼼꼼히 읽자... 이것 때문에 도대체 몇번을 실패한겨..#[성능]아래의 코드에서 속도를 줄일 수 없는가?#문제제출자언어길이결과수행시간제출시간332873HAMMINGCODE cpp735B정답6ms1시간 전332861HAMMINGCODE cpp705B오답5ms2시간 전332852HAMMINGCODE cpp645B시간초과2시간 전시간초과 결과는 납득이 되지 않았다. char 형 끼리의 반복 연산이 그렇게 크리티컬하다고 생각하지 않는데 시간 초과가 났다. 다음은 코드 로직이다.Put value in INT Cases while : Cases >0{Initialize INT Input[], INT Syndrome[], CHAR temp..