iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (4)
Stacks이번에는 기초 자료구조 중에서도 어디에서도 사용되고 있는 개념인 스택에 대해서 알아보도록하자.스택은 예시를 들어보면 사진과 같이 팬케익이 쌓여있는 느낌으로 볼 수 있다. Stack의 자료구조는 개념적으로 객체의 물리적 스택과 동일하다. 어떤 항목을 스택에 넣으면 스택의 맨 위에 놓이게 되고 스택의 어떤 항목을 제거한다면 항상 가장 위에 있는 항목이 제거된다. 스택은 두가지 필수 작업이 존재한다.Push : 스택의 최상단에 요소 추가Pop : 스택의 최상단 요소를 제거인터페이스를 이 두가지 작업으로 제한하는 것은 자료구조의 한 방향에서만 추가하거나 제거할 수 있다는 것이다. CS에서 스택은 LIFO(후입선출) 자료구조로 알려져 있다. 가장 마지막에 Push된 요소가 가장 먼저 Pop되어 나가지게..
- ◽️ Programming/◽️ Computer Science
- · 2024. 11. 11.
iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (3)
2024.10.28 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)2024.10.30 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료구조, 알고리즘에 대해서 알아보자 (2) 오늘은 3번째 시간으로 Swift의 자료구조에 대해서 알아보고자 한다. 오늘 알아 볼 내용들은 평소 개발을 진행하면서 주로 많이 사용하는 Array, Dictionary 등 익숙한 개념이지만 이 내용을 그냥 단순하게 집합의 느낌 정도로 사용했다면 어떤 개념을 가지고 있는지 보다 더 자세하게 다뤄 보고자 한다. 먼저 스위프트 표준 라이브러리가 제공하는 세가지 주요 데이터 구조는 Array, Dic..
- ◽️ Programming/◽️ Computer Science
- · 2024. 11. 4.
iOS Swift의 자료구조, 알고리즘에 대해서 알아보자 (2)
2024.10.28 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1) iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)오늘부터 자료구조에 대해서 자세하게 알아보는 시간을 가져보려고 한다. 앱의 효율성을 끌어올리기 위해서는 CS에 대한 이해가 뒷받침되어야 하기 때문에 총 6챕터로 나누어진 Swift 자료 구조dongdida.tistory.com 1편에 이어서 복잡도에 대해서 더 알아보자!! 로그 시간 Logarithmic time앞서 1편에서 인풋의 모든 요소가 최소 한번씩 검사되는 선형복잡도와 2차 시간 복잡도에 대해 알아보았다. 그러나 이 방법도 있지만 인풋의 서브셋만 검사하는 시나리오도 있다. 이..
- ◽️ Programming/◽️ Computer Science
- · 2024. 10. 30.
iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)
오늘부터 자료구조에 대해서 자세하게 알아보는 시간을 가져보려고 한다. 앱의 효율성을 끌어올리기 위해서는 CS에 대한 이해가 뒷받침되어야 하기 때문에 총 6챕터로 나누어진 Swift 자료 구조 알고리즘의 자료를 한국어로 잘 번역해준 자료가 있어 이걸 통해 한번 공부해보자!https://kimdee.tistory.com/entry/Swift번역-스위프트의-자료구조와-알고리즘-섹션-1-소개-챕터3-스위프트-표준-라이브러리-Swift-Standard-Library 오늘은 전체 챕터를 한번 훑는 느낌으로 알아보도록 하자 복잡도 Complexity우리가 구현하면서 혹은 코딩테스트를 풀면서 접하는 명칭 중 하나는 바로 복잡도이다. 이 복잡도는 소프트웨어 개발의 설계 단계에서 항상 묻게되는 질문이다. 아키텍처 관점에서..
- ◽️ Programming/◽️ Computer Science
- · 2024. 10. 28.
[CS] 컴퓨터 구조에 대해서 자세하게 알아보자
컴퓨터 구조 지식은 크게 두가지로 나뉜다.컴퓨터가 이해하는 정보 : 데이터와 명령어컴퓨터의 4가지 핵심 부품 : CPU, 주기억장치, 보조기억장치, 입출력장치컴퓨터 구조를 이해하는 이유는 프로그래밍 문법만으로는 알기 어려운 성능, 용량, 비용을 고려한 개발이 가능하게 하며 문제 해결 능력을 향상 시키기 때문이다. 데이터문자 표현컴퓨터는 0과 1만 인식한다. 그러면 한글과 영어, 특수문자는 어떻게 표현될까? ‘A’는 65 (1000001)로 변환되어 표현됩니다. 이를 인코딩이라 하며 유니코드가 가장 널리 사용된다.실수 표현0.625를 2진법으로 표현하면 0.101이 된다. 이를 통해 컴퓨터에서 실수를 표현하는 두 가지 방식이 있다.고정소수점장점 : 표현 방식이 간단하다던좀 : 표현할 수 있는 버위가 적다부..
- ◽️ Programming/◽️ Computer Science
- · 2024. 7. 15.
[CS] 운영체제에 대해서 자세하게 알아보자
운영체제란 무엇인가?운영체제란 컴퓨터 전체를 진두지휘하는 핵심 프로그램을 말한다.CPU 스케줄링 : 프로그램들에게 CPU를 어떻게 할당하고 관리할 것인지 결정메모리 관리 : 메모리를 어떻게 할당하고 관리할 것인지 결정프로세스 관리 : 프로세스의 실행을 제어하고 관리파일 관리 : 파일 시스템을 관리입출력 관리 : 입출력 장치를 제어하고 활용운영체제는 커널 영역에서 실행되며, 나머지 프로그램들은 사용자 영역에 적재된다. 주요 운영체제UNIX : 1969년 벨 연구소에서 개발된 운영체제로, 이식성이 좋고 커널 크기가 작으며, 소스 코드가 공개되었다.NINUX : UNIX의 영향을 받은 리누스 토발즈가 개발한 운영체제로, 소스가 공개되어 있다.POSIX : UNIX 운영체제 기반의 인터페이스로 리눅스도 POSI..
- ◽️ Programming/◽️ Computer Science
- · 2024. 7. 13.