분류 전체보기
-
printf 파헤치고 구현하기프로그래밍/42프로젝트 2021. 10. 17. 17:37
stdarg manuanl을 통해 stdarg 사용법을 알아보자 man stdarg void va_start(va_list ap, last); type va_arg(va_list ap, type); void va_copy(va_list dest, va_list src); void va_end(va_list ap); man의 내용을 해석해보자 원문과 비교하면서 읽으면 좋을 것 같다. stdarg.h 헤더 안에는 va_list라는 타입을 선언하고 있고, 3개의 매크로를 통해(end는 빼고 말하는 듯, 함수가 아니고 매크로로 이루어져 있다.) 갯수와 타입을 모르는 arguments list를 순회할 수 있다. 사용될 함수는 va_list 타입의 오브젝트를 선언해야 하고 이 오브젝트를 va_start(), va..
-
#작성중 백준 9481 스카이스크래퍼 skyscrappers, 백트래킹, dlx프로그래밍/알고리즘 & 코딩테스트 2021. 10. 11. 01:35
1. 스카이스크래퍼 백준9481-스카이스크래퍼 백준에 있는 문제는 한 라인에 좌우 양쪽 clue가 주어졌을 때 한 라인에서 가능한 경우의 수가 몇 개인지를 찾는 문제다. 입력 예시를 보면 위와 같이 양쪽에서 바라봤을 때 건물이 2개가 보이는 경우, 2가지 경우의 수 가 가능하다. 하지만 이는 sub문제라고는 할 수 있겠지만 한 줄만 따지기 때문에 일반적인 문제는 아니다. 일반적인 스카이스크래퍼의 문제는 2가지 유형으로 나눌 수 있다. 1. 모든 clue가 존재한다. 2. 일부 clue만 존재한다. 우리가 고려할 문제는 n*n의 일부 clue만 존재할 때 모든 경우의 정답을 최대한 빠르게 구하는 것이다. 일단 일반적인 경우에 어떻게 풀지 고민해보자. 2. 어떻게 풀 것인가? - 백트래킹을 써야한다. 스카이..
-
엔트로피, 크로스엔트로피, KL다이버전스프로그래밍/머신러닝 2021. 10. 5. 22:03
https://www.youtube.com/watch?v=mBMc_3sNa9w 위 영상에 엔트로피와 크로스엔트로피, KL다이버전스의 대한 얘기가 나오는데 일단 엔트로피에 대해 내가 이해한 것을 정리하면 어떤 사건이 일어날 확률이 작다면, 그 사건이 일어났다는 것 자체가 희귀하 일이므로, 확률의 역수를 취한 것을 정보로 정의할 수 있고, log2를 취한 것은 확률끼리의 곱을 덧셈으로 만들어 계산을 용이하게 하고, 그 정보를 몇 개의 이진수로 표현했는지를 나타내기 위함이다. 이 정보에 다시 확률을 곱한 것은 한 사건에 대한 정보가 전체 정보에서 얼마나 가중치(지분율)를 같냐를 표현하기 위한 것 같다. 엔트로피는 이해하겠는데 궁금한 것은 크로스엔트로피를 정의할 때 왜 시그마 y^ * log(1/y)가 아닌 시..
-
#작성중 이더넷 포트 없는 삼성 프린터(SL-J1660) 라즈베리파이로 네트워크 공유하기IT 2021. 10. 5. 21:59
집에 네트워크 연결은 안 되고 usb로 컴퓨터랑만 연결되는 프린터가 있다. (삼성 SL-J1660) 맥북이랑, 윈도우 노트북에서 이 프린터를 쓸 일이 있는데 삼성 공식 홈페이지에서 이 프린터 드라이버를 찾아보면 윈도우용 exe파일 밖에 없다. 윈도우용 노트북에 프린터를 연결하고 네트워크 공유를 해도 되지만, 집에 항상 노트북 전원을 켜놓기에는 좀 그렇고 쓸 때마다 연결해서 사용하는 것도 귀찮다. iptime 네크워크 프린터 아이피타임에서는 네트워크 프린터라는 기능을 제공한다. 아이피타임 네트워크 프린터 A804NS-MU / A1004NS / A2003NS-MU / A2004NS-MU / A3004NS-M / A3008-MU / A6004MX / A8004T / A8004ITL / A8004T-XR / A..
-
m1에서 usb없이 wifi로만 라즈베리파이 zero w 연결하기IT 2021. 10. 5. 21:45
이미지 다운로드 일단 라즈베리파이 공식 홈페이지에서 os 이미지를 받아준다. 라즈베리파이 공홈 무선으로 wifi만 연결하고 터미널에서 ssh로 연결해서 쓸 생각으로 라즈베리파이제로w를 샀기 때문에 굳이 gui 환경을 쓸 일이 없어서 lite를 다운받았다. sd 카드 포멧 그리고 sd카드를 꼽아주자 다음처럼 finder에서 인식된다. m1에는 sd카드 꼽는 구멍이 없어서 나는 sd카드 슬롯이 있는 익스텐더? 독? 을 따로 사용한다. alt + spacebar를 눌러 spotlight로 디스크 유틸리티를 찾아준다. 오른쪽 위에 지우기로 sd를 포멧해준다. FAT32로 해주면 된다. 지운 후 5MB도 정도 용량을 사용하고 있는 게 정상이다. sd 카드 굽기 https://ichi.pro/ko/hedeulise..
-
#작성중 m1 맥북에서 virtual machine UTM, QEMU로 windows 10 한글판 실행하기(평생무료), win10_arm_한글판 이미지 구하기IT 2021. 10. 5. 15:36
m1 맥북에서 win10_arm 한글 버전을 돌리기 위한 삽질 다른 블로그 글을 따라해 봤는데 ms공홈 windows insider preview에 win10 arm 이미지가 없어서 검색을 했다면 잘 오셨습니다. 아래한글이나 다른 윈도우즈 전용 어플리케이션을 쓸 일은 있는데 m1은 아직 부트캠프가 지원 안 되고, virtualbox도 안 돌아가고, parallels를 사기에는 부담이 된다. UTM이라는 VM이 m1에서 호환이 되는 것 같아 시도를 해보았다. 이미지를 잘 다운로드하자 결론은 더 이상 windows insider preview 사이트에서 win10_arm 이미지를 다운로드할 수 없다는 것이다. (x86x64는 다운로드할 수 있음) windows insider preview win11 영어 버..
-
golang 설치, 실행, 외부패키지 import, GOROOT, GOPATH프로그래밍/go 2021. 10. 5. 15:19
기본 설치 일단 go를 설치해보자. linux 환경이면 apt sudo apt install go brew 설치 mac 환경이면 brew를 설치해서 homebrew로 다운 받자. sudo brew install go golang 홈페이지 go 홈페이지에서 설치 패키지를 받아 실행해도 된다. go를 다운 받고 나면 go를 실행해서 설치가 됐는지 확인해보자. 터미널에 go를 치면 go 명령어 도움말이 뜬다. go go version을 입력하면 현재 버전과 설치 환경을 보여준다. go version Go를 향한 여행 go 문법과 기본 개념에 대해서 go tour를 보길 권한다. 적당한 디렉토리에서 실행 적당한 디렉토리를 만들어 go를 실행해보자 mkdir ~/Documents/go/test main.go 파일..