반응형

전체 글 341

FT_printf

https://jangsalt.tistory.com/entry/%EA%B0%80%EB%B3%80-%EC%9D%B8%EC%88%98-vastart-vaend-vaarg-valist 가변 인수 (va_start(), va_end(), va_arg, va_list)출처 : http://blog.naver.com/endfirst가.가변 인수 함수여기서는 가변 인수 함수에 대해서 알아 본다. 가변 인수의 함수를 만드는 방법에 대해서는 물론이고 가변 인수 함수가 동작하는 원리에 대해서jangsalt.tistory.com1. printf는 가변 인수 printf 인수로 정해진 인수가 있는게 아니기 때문에 가변 인수로 지정을 해야한다.printf는 const char로 첫번째 인수로 할당을 해주고 뒤에 가변 인수로 변..

42 2024.12.01

LIBFT

1. FREEhttps://80000coding.oopy.io/694fc8c7-04aa-41ea-9861-4f4e7eac7f6c#694fc8c7-04aa-41ea-9861-4f4e7eac7f6c malloc, free 그리고 dangling pointer가 생기는 이유c 프로그래밍을 좀 해봤다 하는 사람들은 malloc이 메모리 공간을 할당해주는 함수이고, free는 메모리 공간을 해제하는 함수라는 것을 알고 있을 것이다.80000coding.oopy.io malloc을 한 후, free를 하여도 free된 주소는 그대로 변수에 남아있어 다시 재 접근 가능하다 (Dangling Pointer)따라서 다시 재접근 할 이유가 없다면 free한 포인터를 다시 Null로 가르키게 만들어야 완전하게 없앨 수 있다..

42 2024.12.01

[python]2252번 줄세우기

위상정렬의 개념을 처음으로 푼 문제이다. 위상정렬이란 방향이 있는 그래프에서 방향에 어긋나지 않고 노드들의 순서를 출력하는 그래프 문제이다.따라서 노드간의 순서를 어떻게 파악하면 될지 많은 고민을 했다. 처음에는 단순 bfs으로 풀려했으나 당연히 틀렸다. 반례를 생각한 결과1 32 35 36 5이 있었다. 처음 1,2 노드들이 3을 그냥 추가를 해버리면서 5가 나중에 나와버려 틀리게 되었다. 따라서 3이 아직 연결된 노드가 있다는 정보를 저장이 필요하다고 생각을 하였다. 따라서 defaultdict에 각 노드들의 키값을 설정하고 키 값안에 연결된 노드들을 set으로 설정하여 담아 두었다. from collections import deque,defaultdictimport sysinput = sys.st..

[python]1005번 ACM craft

문제에서 방향성 그래프임을 알 수 있었습니다. 건물의 완성 순서가 있기 때문에 양방향으로 설정하면 문제의 의도와는 다르게 순서를 역행할 수 있어 방향성 그래프로 풀이 하였습니다. 또한 이미 방문했던 노드라도 더 시간이 오래 걸리는 방향으로 진입을 해야하기 때문에 여러번 방문 가능합니다. 이미 한 번 방문해서 시간 값을 설정했더라도 최적의 경로임을 보장 못합니다. 우선 하나의 건물이 여러 건물과 이어져 있다면, 여러 건물들의 완성 된 후에 비로소 하나의 건물로 이동이 가능합니다. 이 때 여러 건물들의 지어지는 속도는 제각기 다르기 때문에 가장 오래 걸리는 시간을 알기 위해서 모두 탐색하는 방법 밖에 없어 그리디와 같은 방식은 불가능 합니다. 또한 어려운 점은 시작점을 찾는 과정이었습니다. 문제에서는 도달 ..

프로젝트(터치구현)

터치 구현을 하면서 굉장히 애를 먹었다.마우스로 드래그 드롭은 이미 소스도 많아 정보를 찾기 수월하였고또 순수 js로 구현을 하려다 보니 내가 직접 터치로 드래그 드롭을 구현해야해서 막히는 부분이 많았다https://ui.toast.com/posts/ko_20220106 터치와 클릭, 우리 깐부잖아.터치와 클릭을 사용하지 않는 하루를 상상해보자. 과연 어떨까? 필자는 두 동작 없는 하루를 이제는 상상할 수 없다. 사용자일 때는 무의식적으로 사용해서 이 두 동작의 관계에 대해 깊게 생각ui.toast.com정말 많은 도움을 얻었다. 그래도 이미 마우스로 만들어 놓은 소스가 있기 때문에 터치는 그것을 본따서 이벤트 리스너만 추가하였기 때문에 크게 오래 걸리진 않았다.

아마존 배포시 부딪혔던 문제들(정책, 데이터베이스 연결, 데이터베이스 설정)

정책오랜만에 배포를 다시 하니 정책 설정을 까먹어 개판으로 해, 로그 확인도 못하는 환경이 되어버렸다. 서비스정책 - service roleec2 정책 - ec2 role로 하면 되는 문제를 서로 뒤바꾸고 새로 만들기에 바빴다. service role : ec2 role :  데이터베이스 연결https://velog.io/@bcl0206/Elastic-Beanstalk-%EC%95%B1%EC%97%90-DB%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0-MySql-Workbench-%EC%97%B0%EB%8F%99 Elastic Beanstalk 앱에 DB연결하기 (MySql Workbench 연동)1. 데이터베이스 정보 확인 데이터베이스라는 것은 사실 앞서 앱과 환경을 만드는 과정에서..

경사하강법

수학적 모델을 예측값과의 오차를 줄이기 위해 반복적인 학습을 경사하강법이라고 한다. 경사항강법인 이유는 오차 값 그래프에서 최소값을 찾기 위한 과정을 설명한다. 이차 그래프와 같은 모델이 있을 때 기울기가 0인 그래프를 찾는다면 오차 범위가 가장 작은 값을 찾을 수 있게 된다(기본적을 그래프가 아래로 볼록한 형태 일 것이다. 위로 볼록하다면 오차 값이 음수인 값들이 무한히 있다는 뜻이니) 따라서 오차 값을 나타내는 계산 과정을 mse, 기울기 값을 계산 과정을 dmse이라고 한다. 경사하강법은 기본 w값을 dmse값을 빼주면서 갱신을 한다. 그렇다면 왜 기울기 값을 빼주는것이 w값이 오차값이 최소가 되는 좌표로 이동하게 되는 것일까 왜냐하면 기울기가 0인 곳 좌우로 음의 값, 양의 값을 가진다. 좌측에 ..

유클리드 호제법 증명

A와 B의 최대공약수를 구해야 할 때 A>B일 때 A를 B로 나누면 A=BQ+R이 된다. A = Ka,B=Kb로 둔다음(a,b는 서로수) Ka = KbQ+R R = K(a-bQ)가 된다. 즉 같은 K라는 공약수를 가지게 된다. 여기서 a-bQ와 b가 서로수 임을 증명하면 최대공약수가 증명이 된다. 그렇다면 a-bQ와 b가 서로수가 아니라고 가정을 해보자 a-bQ = Ml, b=Mn일 때 a-MnQ = Ml a = M(nQ+l)이 되므로 a와 b가 서로수가 아닌 공통 약수를 가지게 된다. 그러나 위에 a,b는 서로수라고 가정을 하였기에 모순이 발생하게 되어 자동적으로 a-bQ와 b가 서로수가 된다!