일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 대학교재
- 코딩
- 코틀린
- Algorithm
- 소수경로
- 대학교재풀이
- r
- 데이터처리
- 모두를위한 R데이터분석
- 도전실전예제
- IT
- c++
- 기술
- c언어문제풀이
- 모두를위한R데이터분석입문
- 초보
- C언어
- 알고리즘
- 빅데이터입문
- 혼자공부하는C언어
- 문제해결
- 코딩연습
- PrimePath
- 연습문제
- Python
- 빅데이터
- 혼공씨
- 코딩테스트
- c프로그래밍
- 혼공C
- Today
- Total
목록IT (31)
Jupitor's Blog

킹제 사용언어 : python 아 nhn 들어가고 싶다! 어? 근데 c,c++, python만 된다네 이런 젠장 ㅋㅋ ----------------------------------------------------------------------------------------------------------------------------------- 수정된 코드. 역시 파이썬은 재미있다. ----------------------------------------------------------------------------------------------------------------------------------- 실제 시험에서 c, c++, java만 되니까 c++로 해보았다. 확실히 파이썬보다..
View - view는 동적으로 조작할 수 있다. code로. view의 크기를 조절하거나 애니메이션을 넣을 수 있다. - view는 responder 이기도 하다. - view 는 subview를 가질 수 있다. - view는 nib 파일에서 가져올 수도 있다. - window 와 이 것이 가지고 있는 interface 들을 이어주는 것은 window의 root view controller 이다. - iOS13부터, 앱의 window는 window scene에 의해 관리된다. (UIViewScene) iOS13 이전의 old architecture를 가진 앱을 iOS13 이후의 환경에 실행해도 여전히 old architecture를 가진다. - 앱은 window를 속성으로 갖는 scene delegat..

저번 포스트에서 정확한 BFS방법은 아니지만 그와 흡사한 제가 혼자 생각한 알고리즘으로 PrimePath 문제를 풀어보았는데요. 굉장히 느렸고, Dijkstra 알고리즘이 궁금해서 이 알고리즘으로 한번 해볼까, 싶더군요. 결과를 먼저 말씀드리자면 제가 독자적으로 만들어낸 알고리즘은 Trash(...) 였습니다. 시간이 얼마나 걸렸는지를 먼저 보시죠. 위에가 Dijkstra 알고리즘, 아래가 저의 알고리즘을 이용한 결과입니다. 둘다 최단 경로를 찾아냈지만 시간 차이가 엄청납니다. Dijkstra는 139ms, 제 건 16252ms... 100배 이상이 차이납니다 =_=; Dijkstra는 유명한 알고리즘으로 알려져 있고 많은 응용이 된다고 합니다. 자세한 설명은 검색하면 정말 많이 나옵니다. (wikipe..

알고리즘 문제 중에 이런 문제가 있습니다. 특정한 4자리 숫자 2개 a, b가 있습니다. 숫자 a의 한 자리 숫자만을 변경해서 b를 만들되, 이 때 거쳐가는 숫자들은 모두 소수여야 합니다. 몇 번을 거쳐야만 숫자 b를 만들 수 있는지 구하는 문제입니다. 예를들면, 1033 에서 8179 로 바꾸는 경로를 생각해봅시다. 1033 1733 3733 3739 3779 8779 8179 이렇게 여섯 단계를 거쳐서 8179로 만들 수 있겠죠. 중간에 1733부터 8779는 모두 소수입니다. 이 문제를 처음 접하고 저는 어떻게든 해서 문제를 풀 수 있게 됬는데 다른 사람의 글을 보니 Breadth-first search 또는 Dijkstra’s algorithm algorithms 알고리즘을 사용해서 풀 수 있다고..

c언어에서 malloc, realloc 등으로 메모리를 할당하고 free로 메모리를 반환할때, 이미 해제된 메모리를 또 한번 잘못 free로 반환하게 될 경우 자칫하다간 심각한 오류를 발생시킬 수 있다. 따라서 free로 해제시킨 포인터에 NULL을 할당하여 사고를 예방할 수 있다. 그렇다면 free 함수 자체가 해당 포인터가 가르키는 메모리를 해제 한 후 포인터에 NULL을 대입하면 되지않는가?? 라고 할 수 있는데, free의 프로토 타입을 한번 보자. void free(void *ptr) 다들 알다시피 free 함수에 매개변수로는 포인터의 주소가 간접참조되므로 포인터의 주소 자체를 변경할 수는 없다. 그래서 위에서 말했다 시피 free 문을 쓰고 난 후 ptr = NULL 을 해주거나 이게 귀찮으면..

부록에 나오는 선택정렬을 c언어로 한번 구현해 봤습니다. 간단합니다. 첫번째 항부터 마지막 바로 전 항까지, 해당 항을 제외한 나머지 항들을 비교하고 해당 항이 비교항보다 클 경우 두 항의 위치를 변경합니다. 뭔가 말로 설명하면 부족한데, 코드를 보시면 이해가 가실 겁니다. 가장 시간이 오래 걸리는 경우는 오름차순으로 정렬되어있는 배열이겠으므로, (n-1) + (n-2) + ... 1 = Big-O(N^2) 이고 Big-Ω(1) 이겠네요. 실행 결과입니다.

책의 마지막 챕터의 도전 실전 예제입니다. 어렵습니다. =.=;; 정말 전 c언어에 재능이 없는듯... 실행 결과입니다. 운영체제마다 Ctrl + z을 몇번 입력하느냐에 따라 scanf 가 -1 을 반환하는 경우가 다르다고 하네요.