📌컴퓨터 구조를 왜 알아야 할까?1. 성능, 용량, 비용을 고려할 줄 아는 개발자가 되기 위해서 이전에 프로젝트를 하면서 간단히 EC2를 활용해 띄워보려는 시도를 했었다. 하지만 우리 프로젝트의 규모에 따른 서버 용량, 사양을 가늠하기가 어려웠고 이전에 실습했을 때 골랐던 사양으로 고르니 당연히 안 띄워졌던 일이 있었다… 이를 통해 개발자는 코드만 잘 짜면 되는게 아니라 프로젝트에 따라 성능, 용량, 비용을 다 따질 수 있어야 한다는 걸 배웠다.책에서도 같은 얘기를 한다. 프로그램을 실행할 서버 컴퓨터를 고를 때 너무 저렴한 성능의 컴퓨터를 고르면 누를때마다 한참 걸리는 사이트를 만들게 될 것이고, 그렇다고 너무 좋은 컴퓨터를 고르면 비용이 너무 늘어나는 문제가 생기므로 이를 판단하는 개발자가 되어야 ..
https://www.acmicpc.net/problem/2310 백준 2310번: 어드벤처 게임파이썬문제를 풀었던 방법DFS를 사용해서 풀었습니다. 방문처리에 대해서들렀던 곳을 또 들려야 최소가 되는 경우를 고려했었기 때문에 처음에는 방문처리를 하지 않았습니다.. 사진과 같은 경우에 빈방에서의 소지금이 0원이라면 그냥 일반적인 방문처리로는 트롤방으로 바로 가는 경우가 없습니다.하지만 방문처리를 하지 않는다면 빈방(소지금:0) → 레프(소지금:20) → 빈방(소지금:20) → 트롤방(소지금:10) 이런식으로 갈 수 있어서 이걸 고려했습니다. 하지만 아예 방문처리를 안하니까 당연히 시간초과가 났고, 이걸 해결하기 위해 방문처리를 할때 방문 처리 배열에 현재 가지고 있는 소지금을 저장했습니다.→그래서 다시 ..
https://www.acmicpc.net/problem/1253 백준 1253번: 좋다 풀었던 방법→ 두 숫자를 더해서 하나의 숫자를 찾는거니까 투포인터를 썼습니다. 숫자를 크기 순서대로 정렬하고3번째 숫자부터 마지막 숫자까지 하나씩 확인을 합니다포인터를 배열의 가장 처음에 하나, 마지막에 하나를 두고 각 합이 확인중인 숫자랑 같은지를 확인합니다확인중인 숫자 > 합이라면 처음 포인터를 뒤로 밀고,확인중인 숫자 생겼던 문제처음에는 숫자들이 모두 자연수인줄알고 투포인터를 이용해서 찾을때 탐색하는 범위를 탐색중인 숫자의 앞 배열만을 사용했습니다.1, 2, 3, 4, 5, 6, 7예를 들어, 이 방법일 때 5를 확인중이라면p1 = 1로 두고, p2 = 4로 둬서 확인을 했습니다.하지만 배열이 모두 자연수가..
40.1 이벤트 드리븐 프로그래밍클릭, 키보드 입력, 마우스 이동 등의 일이 일어나면 → 감지 → 특정한 타입의 이벤트 발생이 때, 이벤트가 발생하면 호출할 함수를 이벤트 핸들러라고 함!그리고 이벤트가 언제 발생할지 몰라서 개발자가 명시적으로 함수를 호출하지 못함 → 브라우저한테 ‘너가 처리해’(= 함수 호출 위임)라 하는 게 이벤트 핸들러 등록이런식으로 이벤트를 중심으로 제어하는 프로그래밍 방식 == 이벤트 드리븐 프로그래밍 40.2 이벤트 타입= 이벤트의 종류를 나타내는 문자열 (예를 들어, click, mouseenter….)약 200개 정도가 있고 머가 있는지는 너무 많아서 책 참고하셔서 그때 그때 보시면 될듯요마우스 이벤트(click, mouseup, mousedown, mouseleave…등등..
📌Set= 중복되지 않는 유일한 값들의 집합중복이 안됨순서에 의미가 없음인덱스로 요소 접근 불가능 Set 객체 생성 = Set 생성자 사용// 빈객체 const set = new Set()console.log(set) // Set(0) {size: 0}// 이터러블을 인수로 받음const set1 = new Set([1, 2, 3, 4])console.log(set1) // Set(3) {1, 2, 3}const set2 = new Set('hello')console.log(set2) // Set(4) {'h', 'e', 'l', 'o'} 중복된 l은 한개만 들어감 중복된 요소가 인수로 들어가면 한개만 들어감 -> 이를 이용해서 배열에서 중복된 요소를 제거할 수 있다.const uniq = ar..
🔎 정규 표현식이란?문자열을 대상으로 패턴 매칭 기능을 제공 = 특정 패턴과 일치하는 문자열을 검색 or 추출 or 치환하는 기능const tel = 010-1234-5678;const regExp = /^\d{3}-\d{4}-\d{4}/;// tel이 조건에 맞는지 테스트regExp.test(tel); // true 🔨사용하는 방법1. 정규표현식 리터럴→ 패턴과 플래그로 구성const target1 = 'Is this all there is?';const target2 = 'Is this all?';// 패턴: is// 플래그: i => 대소문자를 구별하지 않고 검색const regexp = /is/i;regexp.test(target1); // trueregexp.test(target2); /..