profile
Seize the day

개발자가 자료 구조를 알아야 하는 이유

자료 구조는 코드의 실행 속도에 미치는 영향이 매우 크다. 데이터를 어떻게 조직하는가에 따라서 프로그램은 수십배 혹은 수백배 더 빠르게 혹은 더 느리게 실행될 수 있다. 우리가 소프트웨어를 문제 없이 빠르게 실행할 수 있는 명쾌한 코드를 작성하는 능력을 갖추고 소프트웨

2021년 7월 8일
·
0개의 댓글
post-thumbnail

[JavaScript] - Array.find()

find() 메서드는 배열을 다루는 API로, 주어진 콜백 함수를 만족하는 첫번째 요소의 값을 반환한다. 아래와 같은 Student class와 students 라는 배열이 있다.students 배열에서 score가 90인 요소를 찾으려면 어떻게 해야할까? 이럴 때 f

2021년 6월 9일
·
0개의 댓글
post-thumbnail

[JavaScript] - Event loop

이벤트루프를 들어가기 앞서 프로세스와 쓰레드의 차이점에 대해서 알아보겠습니다. 프로세스는 운영체제 위에서 독립적으로 메모리에서 실행되고 있는 프로그램을 말합니다. 1개의 프로세스는 최소 1개의 쓰레드를 가지며, 프로세스는 쓰레드의 정보를 담아 쓰레드 간의 공유 환경을

2021년 6월 5일
·
0개의 댓글
post-thumbnail

[CS50] 알고리즘 - 병합 정렬

재귀를 활용한 병합 정렬을 구현할 수 있다.병합 정렬전화번호부의 분할 정복 탐색처럼 데이터를 반으로 나우어간다는 것과 공통점이 있는 방법인 병합 정렬(합병 정렬) 이 있다.병합 정렬은 원소가 한 개가 될 때까지 계속해서 반으로 나누다가 다시 합쳐나가며 정렬을 하는 방식

2021년 1월 31일
·
0개의 댓글
post-thumbnail

[CS50] 알고리즘 - 재귀

함수를 재귀적으로 사용하는 코드를 작성할 수 있다.재귀함수를 사용할 때 어디에서 호출을 했는가? main 안에서 프로그램을 작성하면서 필요한 순간에 호출하여 사용한다.그런데 main 역시 함수이기 때문에 main이라는 함수 안에서 또 다른 함수를 사용한 것이다.이 사실

2021년 1월 31일
·
0개의 댓글
post-thumbnail

[CS50] 알고리즘 - 정렬 알고리즘의 실행시간

여러 정렬 알고리즘과 검색 알고리즘의 실행 시간을 Big O와 Big Ω로 정의할 수 있다.Big OBig Ω지금까지 배운 선형 검색, 이진 검색, 버블 정렬, 선택 정렬의 실핼시간은 각각 어떻게 되는지 정리해보자.O(n^2): 선택 정렬, 버블 정렬O(n log n)

2021년 1월 31일
·
0개의 댓글
post-thumbnail

[CS0] 알고리즘 - 선형 검색

주어진 배열 또는 구조체에서 선형 검색을 할 수 있다.선형 검색구조체찾고자 하는 자료를 검색하는 데 사용되는 다양한 알고리즘이 있다. 그 중 하나가 선형 검색이다.선형 검색은 원하는 원소가 발견될 때까지 처음부터 마지막 자료까지 차례대로 검색한다.이렇게 하여 선형 검색

2021년 1월 31일
·
0개의 댓글
post-thumbnail

[CS50] 알고리즘 - 알고리즘 표기법

알고리즘의 실행 시간의 상한과 하한을 표기할 수 있다.Big OBig Ω아래 그림과 같이 알고리즘을 실행하는데 걸리는 시간을 표현할 수 있다. 이것을 공식으로 표기한 것이 Big O 표기법이다. 여기서 O는 "on the order of"의 약자로, 쉽게 생각하면 "~

2021년 1월 31일
·
0개의 댓글
post-thumbnail

[CS50] 알고리즘 - 검색 알고리즘

주어진 배열 속에서 특정 값을 찾는 방법을 설명할 수 있다.선형 검색이진 검색배열은 한 자료형의 여러 값들이 메모리상에 모여 있는 구조이다.컴퓨터는 이 값들에 접근할 때 배열의 인덱스 하나하나를 접근한다.만약 어떤 값이 배열 안에 속해 있는지를 찾아 보기 위해서는 배열

2021년 1월 31일
·
0개의 댓글
post-thumbnail

[CS50] Array - 명령행 인자

명령행 인자를 받는 프로그램을 C로 작성할 수 있다.명령행 인자argvargc여태껏 많이 사용해온 main 함수를 보다 자세히 들여볼 때가 왔다.main도 그 형태를 보면 하나의 함수임을 알 수 있다. 이젠 더이상 main() 안에 기계적으로 void라고 입력하는 대

2021년 1월 27일
·
0개의 댓글
post-thumbnail

[CS50] Array - 문자열의 활용

문자열을 탐색하고 일부 문자를 수정하는 코드를 구현할 수 있다.strlentoupper사용자로부터 문자열을 입력받아 대문자로 바꿔주는 프로그램을 아래와 같이 작성할 수 있습니다. 먼저 사용자로부터 입력받은 문자를 s라는 변수에 저장한다.그리고 s의 길이만큼 for 루프

2021년 1월 27일
·
0개의 댓글
post-thumbnail

[CS50] 배열 - 문자열과 배열

문자열과 배열 학습 목표 문자열이 C에서 정의되는 방식과 메모리에 저장되는 방식을 설명할 수 있다. 핵심 단어 문자 문자열

2021년 1월 26일
·
0개의 댓글
post-thumbnail

[CS50] Array - 배열

배열을 정의하고 사용하는 방법을 설명할 수 있다.배열전역 변수 C에는 아래와 같은 여러 자료형이 있고, 각각의 자료형은 서로 다른 크기의 메모리를 차지한다.bool: 불리언, 1바이트char: 문자, 1바이트int: 정수, 4바이트float: 실수, 4바이트long:

2021년 1월 25일
·
0개의 댓글

[CS50] Array - 디버깅

디버깅 학습 목표 디버깅 하는 여러 방법을 설명할 수 있다. 핵심 단어 디버깅 help50 debug50 버그와 디버깅 버그(bug)는 코드에 들어있는 오류이다. 버그로 인해 프로그램의 실행에 실패하거나 프로그래머가 원하는 대로 동작하지 않게 된다. 버그를 만들고

2021년 1월 25일
·
0개의 댓글
post-thumbnail

[CS50] Array - 컴파일링

컴파일링

2021년 1월 24일
·
0개의 댓글
post-thumbnail

[CS50] C언어 - 조건문과 루프

조건문과 루프 학습 목표 조건문과 루프를 c로 작성할 수 있다. 핵심 단어 int if while for int > Code 여기서 int는 변수가 정수(integer)라는 것을 알려주는 것이고, counter는 변수의 이름, 0은 그 값에 0을 저장(

2021년 1월 20일
·
0개의 댓글
post-thumbnail

[JavaScript] - null 병합 연산자 '??'

null 병합 연산자(nullish coalescing operator) ??를 사용하면 짧은 문법으로 여러 피연산자 중 그 값이 '확정되어 있는' 변수를 찾을 수 있다. a ?? b의 평가 결과는 다음과 같다. a가 null도 아니고 undefined도 아니면 a그

2021년 1월 20일
·
0개의 댓글
post-thumbnail

[CS50] C언어 - C기초

C로 "hello, world"를 출력하는 프로그램을 만들 수 있다.C는 아주 오래되고 전통적인 순수 텍스트 기반의 언어이다. 위 코드를 하나하나 설명하자면,int main(void)는 '시작한다'의 의미를 가지고 있다고 보면 된다.앞으로 작성할 코드 모두는 이 int

2021년 1월 19일
·
0개의 댓글

[React] - 속성값 타입 정의하기

prop-types는 속성값의 타입 정보를 정의할 때 사용하는 리액트 공식 패키지다. 속성값의 타입 정보는 컴포넌트 코드의 가독성을 위해서 필수로 작성하는 게 좋다.자바스크립트는 동적 타입언어로 타입이 없기 때문에 배우기 쉽고 간단한 프로그램을 작성할 때는 생산성이 좋

2020년 11월 1일
·
0개의 댓글