언어공부

    [swift]  Linked List 정리 (1)

    [swift] Linked List 정리 (1)

    시간 복잡도에 대한 내용은 자세히 다루지는 않을 예정이다. 본 글은 오로지 Linked List에 대한 내용만 기술할 것이다. 혼자 노트정리 한다고 생각하고 정리해 나갈 것이다. 시각 자료등은 유데미의 스위프트로 공부하는 데아터 구조를 참조하자. 직접 그려 넣고 싶지만 시간이 많이 걸려 하진 않을 것임. 먼저 링크드 리스트가 뭔지부터 알기 전에 배열의 특성을 살펴보자. 배열을 하나 만들었다고 가정하고 맨 앞에 요소를 하나 추가한다고 해보자. 그러면 시간은 얼마나 걸릴까? 답은 O(n)이다. 맨 앞에 요소를 추가하려면 먼저 있는 요소들을 한칸씩 밀어야 하기 때문이다. 만약 요소 1개당 1ms가 걸린다고 가정하고 요소가 백만개가 있다고 쳐보면 1000000ms -> 약 16.7분 정도가 걸린다. 너무 느려터..

    C 포인터 / 배열은 포인터다?

    C 포인터 / 배열은 포인터다?

    https://www.youtube.com/watch?v=nRR0ymmICBo&list=PLz--ENLG_8TMdMJIwyqDIpcEOysvNoonf&index=11 저번에 포스팅 했던 개념을 잠깐 가져와 보자면 자료형과는 상관없이 포인터는 항상 같은 용량을 차지한다는 것을 알 수 있었다. 결국 int * 를 입력하면 시스템을 타는 것이다. 내가 만약 32bit 컴퓨터를 쓴다면 4byte가 될 것이고 지금처럼 64bit 컴퓨터를 쓴다면 8byte가 될 것이다. 앞에 자료형이 int던 double이던 너구리던 뭐던 상관이 없다. 그러면 용량이 같은 것은 이해가 되는데 그럼 자료형을 나누지 앟고 해도 상관이없는거 아니냐 할 수 있는데 그것은 다음 포스팅때 다루겠다. 여기 까지가 저번 내용이었다. → 요약. ..

    c 포인터 / 포인터 개념 부숴버리기😏

    c 포인터 / 포인터 개념 부숴버리기😏

    배열 (array) asm(어셈블리어) 같은 경우 배열을 사용하기 위해선 메모리 주소들을 하나하나 외워서 사용해야 했었다. 하지만 c 같은 경우 변수 선언 개념을 통해서 외울 필요가 없어졌다. int arrayA[10]; 만약 배열의 크기가 10이라면 a[0] ~ a[9]로 총 10개로 나타낸다. 또한 각각의 간격의 크기는 int형으로 4byte이다. 배열은 무조건 각 위치가 붙어있다. #include #define MAX 100 int main() { int arrayA[MAX]; for(int i = 0; i < MAX; i++){ arrayA[i] = i * 2; printf("arrayA[%d] = %d\\n", i , arrayA[i]); } // for문을 줄일 수 있으면 줄여라. int a ..

    리눅스로 c를 배워보자.

    내가 계속 생각했던 것이 하나 있는데 바로 PS대회에 꼭 참가해보는 것이다. 부끄럽지만 계속 해야지 해야지 하다가 미룬 케이스라 이번에도 미룬다면 끝이 없을 것 같다 바로 시작해 보려한다. c++로 하지 왜 c로 하느냐 할 수가 있는데 먼저 복학을 했을때 c로 진행하는 수업이 많기 때문에(c를 진짜 다 잊어버림...) 마음 먹었을때 빠르게 다시 시작해야한다. (게으른 내 탓이다 ㅠㅠ) 공부 방법은 평소 즐겨보는 오제이 튜브 c 강의를 따라 해볼 예정이다. 본업은 ios가 우선이라 c는 짬을 내서 비는 시간에 하려 한다. 블로그 포스팅도 마구 따라 치는 것이 아닌 내가 이해를 먼저 한 후에 포스팅 할 예정이다. https://www.youtube.com/watch?v=mo_AQ1xDCFs&list=PLz-..

Buffering ...