컴퓨터가 수행할 일을 순서대로 알려주는 명령어의 집합
시간복잡도
얼마나 오래 걸렸는지
계산복잡도
얼마나 많이 반복을 했는지
big O 표기법
- O(n): 필요한 계산 횟수가 입력크기 n과 비례할 때
- O(1): 필요한 계산 횟수가 입력크기 n과 무관할 때
공간복잡도
얼마나 많은 공간을 사용했는지
효율적인 메모리 관리나 효율성 때문에
이게 왜 있지? 컴퓨터 언어를 만들 때,자료구조를 참고한다.
단순한 자료구조를 넘어서 효율적인코드를 짤 때, 단순 array나 object로는 구현도 어렵고
속도도 빠르지 않다.
https://visualgo.net/ko/list?slide=1
function counter() { let content = document.querySelector('#jasoseo').value; if (content.length > 500) { content = content.substring(0,500); document.querySelector('#jasoseo').value = content; } document.querySelector('#count').innerHTML = '(' + content.length + '/500)'; } counter();
let content = document.querySelector('#jasoseo').value;
: id가 jasoseo인 textarea 안의 내용을 content라고 하겠다.
if (content.length > 500) { }
: 만약 내용의 길이가 500이 넘으면,
content = content.substring(0,500);
: 500까지만 자른 내용을 content로 다시 정의하겠다.
document.querySelector('#jasoseo').value = content;
: 그리고 이 재정의한 content를 textarea안의 내용으로 넣겠다.
document.querySelector('#count').innerHTML = '(' + content.length + '/500)'
: id가 count인 p태그 안에 ( 문서의 길이 / 500)으로 표시해주겠다.
세상에 자바스크립트도 아직 너무 어려운데 알고리즘까지 하려니까 머리에 쥐가날 것 같다. 수업시간에 열심히 손으로 쓰면서 이해하려고 하는데 진짜 어렵다!! 매일매일 손코딩할 것 추가다..! 너무 어려운 것부터 하려고 하지말고 진짜 쉬운 것부터 천천히 해봐야겠다.
잘한점
고칠점