전체 글 170

[React] step1. 리액트 시작하기 (CDN)

키워드 리액트란? MVC에서 View (유저에게 보여주는 화면)에 최적화된 라이브러리 템플릿과 컴포넌트 템플릿 : HTML태그 형식을 문자열로 반환 (재사용이 어렵) 컴포넌트 : 재사용이 가능한 API, 수많은 기능을 내장 (재사용 용이, React의 방식) 렌더링 : 사용자 화면에 뷰를 띄우는 것 리액트는 동적으로 화면을 구성하기에 최적화 되어 있음 Virtual DOM, 변경되는 부분을 기존 돔과 비교해서 차이만 반영해서 렌더링 되도록 함 리액트 적용하기 CDN 삽입 (리액트, 리액트돔, 바벨) 하위에 script 태그생성, 해당 태그에 타입 지정 "type"="text/babel" 삽입할 위치를 querySelector로 할당한 돔 객체로 생성 삽입할 내용 생성 : 변수명 = (JSXHTML문법 작..

[학습 방법] 구조화하며 읽기, 줄기에서 잎으로

_아이패드 뷰어 검색하다가 알게 된 영상인데, 구조화 연습할 때 좋은 학습 방법이라, 기록한다 인상적이었던 부분 1. 책의 목차를 일차적으로 정리하고, 수업 수강 2. 책의 목차를 정리할 때는 대단원을 한 장으로 치고, 해당하는 중제목, 소제목, 그리고 본문에서 자주 등장하는 키워드로 내용을 채운다. 이 때 포인트는, 본문 내용을 이해하기 위해 애쓰지 않는다. 문장 안읽는다. 가볍게 스키밍하면서 여기 대단원엔 이런 키워드가 등장하는 구나 수준으로 빠르게 진행 장점 내용을 구조화하거나, 개념들을 서로 연결하는 것에 어려움을 겪고 있다면 이 방법을 통해 효과적인 학습을 할 수 있다! 최재천 교수님이 말씀하신 탐독이랑도 닿아있고, 출력에도 용이하고, 시험부터 발표까지 다양하게 활용할 수 있겠다. 방법 - A4..

log ✎⁾⁾⁾ 2022.09.14

[medium 번역, algorithm] 개발자가 필수로 알아야할 6가지 알고리즘

1. sorting 알고리즘 (정렬 알고리즘) : 배열의 아이템을 순서대로 정렬하는 알고리즘 1-1. 버블 정렬 (Bubble Sort) 가장 기본적인 정렬 알고리즘, 인접한 요소들이 순서에 맞지 않으면 반복적으로 교체한다. 1-2. 병합 정렬 (Merge Sort) 분할 정복 전략을 사용하는 알고리즘이다. 1-3. 퀵 정렬 (Quicksort) 평균적으로 n log n의 시간복잡도를 수행하는 가장 인기있는 정렬 알고리즘이다. 빠르고 효율적이다. 1-4. 힙 정렬 (Heap sort) 완벽한 이진 트리(:heap)로 시각화 되는 배열에 의해 작동한다. 2. Searching 알고리즘 (탐색 알고리즘) : 자료(data set)에서 요소를 찾기 위한 알고리즘 1-1. 이진 탐색 (Binary Search)..

⚡️algorithm 2022.09.14

[set, map, sum] 프로그래머스 lv1. 두 수의 합 (map이랑 sum 같이 쓰기!)

문제 리스트에서 두 개 뽑아서 더한 값을 오름차순으로 정렬해라. 문제 바로가기 내 풀이 from itertools import combinations def solution(n): comb = set(map(sum,(combinations(n, 2)))) return sorted(list(comb)) 결과 비슷한데, map없이 쓴 다른 사람 풀이 (list comprehension) : 더 느림, 같은 결과를 가져온다는 점만 배우면 된다. from itertools import combinations def solution(numbers): return sorted(set(sum(i) for i in list(combinations(numbers, 2)))) 결과 반환값의 형태는 list여야 해서 lis..

[dictionary, 조건에 맞는 값 탐색, 효율성] 프로그래머스 lv2. 순위검색 (feat. lambda, filter, map, combination, get(key))

문제 문제 | 지원자가 지원서에 입력한 4가지의 정보와 획득한 코딩테스트 점수를 하나의 문자열로 구성한 값의 배열 info, 개발팀이 궁금해하는 문의조건이 문자열 형태로 담긴 배열 query가 매개변수로 주어질 때, 각 문의조건에 해당하는 사람들의 숫자를 순서대로 배열에 담아 return 하도록 solution 함수를 완성해 주세요. 시도 방법1. 문자들을 다 숫자 코드로 바꿔서 일치하는 거 찾으려고 했음 결과 답은 맞으나,, 효율성에서 실패. 딕셔너리 썼는데, 각 utils를 고유값으로 해서 그런가봐 ㅍㅅㅍ ((문풀후 추가 : 딕셔너리까진 맞음, 치환도 괜찮을듯, 다만 점수 찾는 부분이 시간 오래걸리는 원인이었음)) # ''' # 조건에 맞는 지원자는 몇 명? => 탐색? # 언어 : cpp java ..

최후의 독서, 기술과 예술 사이에서

혼란의 시대와 책 나는 정보를 흐름과 인상으로 받아들이는 데만 특화되어 있어서, 단 하나의 메시지만 기억하곤 한다. 2022 국제 도서전 김영하 작가님의 북토크에서는 '책이라는 삶의 피난처'라는 메시지가 있었다. 재난 SF의 한 장면처럼 우리는 코로나 시대를 지나왔고, 김영하 작가님은 지구 유일의 기록자 같은 경건한 마음으로 코로나 발병의 첫 기사를 일기에 적었다고 했다. 그렇게 시작한 우리의 재앙은 여러 불편과 상처를 지나, 낯선 것은 익숙한 것으로 익숙한 것은 낯선 것으로 만들어 버렸다. 명동이 망하고, 이태원, 홍대가 망하는 동안, 철거업과 배달업이 흥했다. 그리고 의외의 사실은 출판업이 흥했다는 것이다. 코로나 기간 동안 오히려 도서 판매량은 증가한 것인데, 이는 우리의 불안을 책에 맡기는 것이며..

log ✎⁾⁾⁾ 2022.09.12

[combinations, Counter, 빈도] 프로그래머스 lv2. 메뉴리뉴얼

문제 from itertools import combinations def solution(orders, course): comb_dic = {long: {} for long in course} selected = set() for long in course: best_num = 2 for guest in orders: comb = list(map(sorted, combinations(guest, long))) comb = ["".join(arr) for arr in comb if len(arr) > 0] for e in comb: if not e: continue key = "".join(sorted(e)) if key in comb_dic[long].keys(): comb_dic[long][key] ..

[Dictionary 탐색] 프로그래머스 lv2. 신고결과받기 (feat. enumerate, set, dictionary)

[ 문제 바로가기 ] 수도코드 내 답안 def solution(users, report, k): report = set(report) report = [text.split() for text in report] history = {x[0]:[] for x in report} reported_cnt = {key:0 for key in users} reported_who = {key:[] for key in users} # block for content in report: whom = content[1] reported_cnt[whom] += 1 reported_who[whom].append(content[0]) blocked = [i for i, cnt in reported_cnt.items() if c..

[queue] 프로그래머스 lv2. 두큐합 같게 만들기 (feat. deque의 주요 메서드)

아직 잘 모르겠는 문제, 외우고 쳐보는 것도 잘 안된다. 참고한 후, 답안 from collections import deque def solution(queue1, queue2): answer = 0 mid = sum(queue1) + sum(queue2) if mid % 2 != 0: return -1 tot //= 2 q1 = deque(queue1) q2 = deque(queue2) sum1 = sum(queue1) sum2 = sum(queue2) while q1 and q2: if sum1 > mid: tmp = q1.popleft() sum1 -= tmp sum2 += tmp elif sum1 < mid: tmp = q2.popleft() q1.append(tmp) sum1 += tmp su..

[npm, nodemon] node로 실행시킬 js 파일을 별도 동작없이 저장과 동시에 자동 실행되도록 하기

npm 주요 명령어 package json 파일 생성, npm 시작 npm init npm으로 설치 npm install npm i, npm add 와 동일 npm i -h 도움말, 명령어 표시 npm ll, npm -g ll 설치된 패키지 확인하기 (-g : global option) npm ll --depth=0 패키지 의존성있는 설치 전부 표시하지 않고, 가장 상위 패키지만 보기 npm view {package} 특정 패키지의 정보 보기 npm outdated 업데이트 안 된 패키지 목록 보기 nodemon 설치 npm i nodemon --save-dev (--save-dev 개발에만 쓰이는 패키지는 의존성을 별도로 관리하도록 함, package.json에서 확인가능) "devDependencie..

Project 2022.09.06