본문 바로가기

분류 전체보기98

자바스크립트 처음부터 다시보기 EP.1 자바스크립트 처음부터 다시보기 GDSC KNU 2기를 하면서 자바스크립트 스터디를 시작하게 되었고 2019년도에 오픈소프 컨트리뷰톤을 통해서 알게 되고 조금이나마 커밋을 했었던 모던 자바스크립트 https://ko.javascript.info/ 를 통해서 스터디를 진행하기로 하였습니다. 2020년도에 소마를 하면서 자바스크립트를 사용하긴 했었지만 정말 초보 상태에서 시작하게 되면서 기초가 정말 중요하다고 생각을 했었고, 이번 기회에 충분히 볼 수 있는 시간이 되었으면 하며 글도 남겨 봅니다. 1. 소개 자바스크립트란? 자바스크립트 → 웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어 자바립트로 작성한 프로그램 → 스크립트 스크립트는 웹페이지의 HTML안에 작성가능 → 웹페이지를 불러오면 스크립트.. 2022. 10. 12.
알고리즘 다시 공부하기 3일차 정렬 알고리즘 → 도출하는 결과는 같더라도 알고리즘에 따라 성능과 효율이 달라지기 때문에 작동원리와 장단점 파악 필요 → 알고리즘 문제 풀 때 + 코딩테스트 문제 풀 때 기본적으로 자주 사용하게 되는 요소가 아닌가 싶음 버블 정렬 삽입 정렬 병합 정렬 셸 정렬 선택 정렬 → 평소에 안썼던 정렬들이 더 많은 거 같음. ⇒ 파이썬은 느리다는 단점이 있어서 퀵 정렬을 쓰는게 좋다고 배웠는데 내용들 보면서 봤을 땐 병합 정렬이 좋을 수도 있겠단 생각이 들었음(+ 연결리스트?) *파이썬에서 변수 편하게 바꾸기 → a, b = b, a (양쪽 값을 편하게 바꿀 수 있음, 평소에 temp 써서 임시로 담아두는거 안해둬도 됨!) 1. 버블 정렬 가장 간편하지만 속도가 가장 느린 알고리즘, 가장 큰 값을 반복적으로 옮겨.. 2022. 9. 12.
알고리즘 다시 공부하기 2일차 2일차 파이썬 자료구조 정리 리스트 → 수정 가능한 일련의 요소들을 저장하는데 주로 사용하는 구조 저장 되는 요소들의 자료 유형은 같지 않아도 됨 리스트를 만들려면 [] 안에 데이터 요소들을 넣고 쉼표로 구분해주면 됨 알고리즘이 작동할 때 임시 데이터를 다루는데 유용함 aList = ["Hello", 33 , "Daegu", True] print(List) 주로 사용 하는 방식 리스트 인덱싱 → list_colors[1] 리스트 슬라이싱 → list_colors[0:2] → 인덱스 0번에서 1번 까지 슬라이싱(0 ≤ a < 2) → list_colors[:2] → 인덱스 처음부터 1번까지 슬라이싱((0 ≤ a < 2) 네거티브 인덱싱 → 끝에서 거꾸로 세어주는 방식 → 뒤에서 부터 세어준다고 생각하면 됨.. 2022. 9. 11.
알고리즘 다시 공부하기 1일차 1일차 알고리즘 설계 시에 고민해야 하는 거 알고리즘이 우리가 기대한 결과를 출력하는지 선택한 방법이 최선인지 규모가 더 큰 데이터 셋에도 동작할지 알고리즘의 분류 데이터 집약적 알고리즘 → ex) 대용량에 파일에 적용된 압축 알고리즘 연산 집약적 알고리즘 → ex) 매우 큰 소수를 찾는 알고리즘 1번 + 2번을 한 알고리즘 → 자원 소모 多, 가용한 자원 지능적 할당 필요! 데이터 → 크기 + 속도 + 다양성 (속도 기준 : 배치 → 주기적 → 준 실시간 → 실시간 프로세서 순) 연산 → 문제를 처리하는데 소요되는 자원에 관련 된것 → 하려는 일에 따라서 더 많은 처리 능력이 필요로 해짐 성능 분석하기 공간 복잡도 분석 → 알고리즘이 입력데이터를 처리하는데 필요한 메모리양 추정 알고리즘이 돌아가는 과정.. 2022. 9. 7.
[백준] 17298번 with Python (아직 못품) 더보기 문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ .. 2022. 4. 13.
javaScript 복습 1 const, let, var 자바스크립트는 기본적으로 타입이라는 것이 설정 되어져 있음 const → 상수 값으로 변수 생성 시에 같이 사용하는 생성어? const → constant, 상수 값이므로 값이 바뀔 경우가 생김 const와는 다르게 let이라는 것도 있는데 let의 경우에는 생성할 때만 사용하여주면 됨 let은 마치 c언어에서 int, str 파이썬에서 list 등 처럼 생성자로 사용하여 주는 것. 변수 선언에는 기본적으로 const를 사용하고, 재할당이 필요한 경우에 한정해 let 을 사용하는 것이 좋다. 그리고 객체를 재할당하는 경우는 생각보다 흔하지 않다. const 를 사용하면 의도치 않은 재할당을 방지해 주기 때문에 보다 안전하다. 재할당이 필요한 경우에 한정해 let 을 사용한다... 2022. 2. 24.
[백준][파이썬] 1193번 분수찾기 브론즈 문제 치곤 상당히 많이 고민했던 문제입니다. 다들 어떤 식으로 고민해서 푸는지는 모르겠지만, (1/1)-(1/2,1/2)-(3/1,2/2,1/3)-... 이런식으로 계속해서 숫자가 이어져 나가고 있을 때 몇 번째의 값을 구하는지 문제에서 주면 답을 찾아 주어야 하는 문제입니다. 생각했던 과정은 1,2,3 계속해서 1씩 늘어나는 숫자를 생각했을 때 2,3,4 순으로 분자+분모 값의 합이 나온다. 그러면 등차수열 처럼 값을 늘려서 계산해주면 되겠네 하지만 중간에 분자+분모 값이 홀수 인지 짝수인지에 따라서 분수의 순서가 달라진다. 그러면 그거는 2로 나눠서 나머지를 확인하면 되겠네 몇 번째 인지는 어떻게 생각을 해줄껀가를 고민했을 때, 저의 경우에는 (1/1)이나 (1/2,2/1) 처럼 대각선으로 한.. 2022. 1. 15.
꾸준히 다시 공부하기 2021.12.26일자로 다시 빡세게 백준 문제를 풀기 시작했습니다. 한 20일 정도 지났는데 하루에 그래도 한문제씩은 푸는 속도로 하나씩 꾸준하게 풀어가보려고 합니다. (이제는 진짜 전역의해가 밝았기 때문에 ㅎㅎ) 일단은 크게 계획을 세워서 풀고 있어서 한번 적어보자면 1. 백준 단계별 풀어보기 1)입출력 단계~12)정렬 단계 까지 정리하면서 기본정도는 쳐야 될거 같아서 하나씩 풀어보고 있습니다. (이전에 풀어봤던 문제도 있고, 아니면 파이썬으로 혹은 다른언어로 풀어본 문제도 있어서 하나씩 차근차근 돌아본다는 느낌으로 풀어보고 있습니다.) 2. 백준 단계별 풀어보기 그다음은 백준 강의에 있는 알고리즘 기초/중급 정도 까지 문제를 풀어볼까 합니다. 확실히 머리는 쓰는 만큼 잘굴러가는 거 같아서 입대하기 .. 2022. 1. 15.
[Portfolio 만들기] 어떻게 만들까? 구름 IDE를 통해서 포트폴리오 라고 해야 되나, 저의 지난 3년을 대충이나마 정리해둘 사이트를 만들기로 했습니다. 메인 프레임워크 Django로 결정을 하였습니다. → 결정 이유, 하던걸 일단 다시 써봐야 잘하는지 알 수 있어서 + 제일 잘 사용해서 → 이게 제일 사용하기 편해서 사이트에 담을 내용들 1. 지금까지 해왔던 프로젝트들 → 사이드 프로젝트 부터 소프트웨어 마에스트로에서 진행했던 프로젝트 까지 기억나는 대로 내용을 정리해서 담아두기 2. 지금까지 해왔던 대외 활동들 → 거기서 뭘했고, 뭘 느꼈는지에 대해서 정리해둘 필요가 있음 3. 내가 할 수 있는 것들 → 중국어, 영어, 하다 못해 볼링, 프로그래밍 언어 까지 깔끔하게 정리할 수 있도록 4. 디자인 → 최대한 깔끔하게 , 단순하게 내용을 .. 2021. 7. 3.