분류 전체보기

    [ 이코테 강의 ] 기타 그래프 이론

    ✍ 서로소 집합 공통 원소가 없는 두 집합 (1,2) (3,4) => 서로소 관계 📌 서로소 집합 자료구조 서로소 부분 집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조 두 종류의 연산 지원 합집합(Union) : 두 개의 원소가 포함된 집합을 하나로 합치기 찾기(Find) : 특정한 원소가 속한 집합이 어떤 집합인지 알려주는 연산 서로소 집합 자료구조 == 합치기 찾기(Union Find) 자료구조라고도 불림 합치기 연산 시 자료구조의 동작 과정 합집합 연산을 확인하여 서로 연결된 두 노드 A,B를 확인 A와 B의 루트 노드 a' b'을 각각 찾는다 a'를 b'의 부모 노드로 설정 모든 합집합 연산을 처리할 때까지 1번 과정 반복 기본적인 형태의 서로소 집합 자료구조에서는 루트 노드에 즉시 접..

    [ 백준 9095 ] ( python ) 1, 2, 3 더하기

    📚 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 예제 입력 1 복사 3 4 7 10 예제 출력 1 복사 7 44 274 ✍ 접근 피보나치 수열이라는 문제 제목부터 DP 피보나치 수열은 n = n-1..

    [ 백준 1003 ] ( python ) 피보나치 함수

    📚 피보나치 함수 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibo..

    [ 백준 1463] ( python ) 1로 만들기

    📚 1로 만들기 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 예제 입력 1 복사 2 예제 출력 1 복사 1 예제 입력 2 복사 10 예제 출력 2 복사 3 ✍ 접근 DP에 익숙하지 않아서 DFS로 풀려다가 계속 시간초과가 났었다. DP에 대한 기본적인 개념이 없어서 DP에 대해 공부 후 다른 사람의 코드를 참고해서 ..

    [ 🐱‍💻 강의 노트 ] React 완벽 가이드 강의 정리 섹션 27 | React + TypeScript 사용하기

    React에 TypeScript를 함께 쓰고 있지만 지식의 얕음을 느끼고 다시 공부했다. 도구를 그냥 쓰는 것과 잘 알고 쓰는 것은 역시 다름을 느낀다. 0. React + TypeScript ✍ What? Why? 타입스크립트는 자바스크립트의 superset 자바스크립트의 기본적인 문법, 코드 작성법 등을 그대로 사용하지만 새로운 기능이 추가됨 타입스크립트는 자바스크립트의 라이브러리가 아니기 때문에 js기능을 확장하지는 않는다. 하지만 확장된 문법을 가지고 정적 타입을 갖는다. JS : dynamically tpyped (동적 타입 언어) TS : JS + static typing (정적 타입 언어) ✅ JS 함수 선언 시점에는 자료형을 특정 짓지 않는다 매개 변수를 받는다는 것만 알고 있음. 사용한 ..

    [ 🐱‍💻 강의 노트 ] React 완벽 가이드 강의 정리 섹션 29 | 리엑트 요약 및 핵심 기능

    0. React 프로젝트 만들기 표준 JS 프로젝트에는 HTML, CSS와 JS 파일들이 있고 HTML 파일 안에서 외부 파일들을 import 해서 동작한다 React에서는 이런식으로 하면 안됨. JS 안에 HTML을 쓴다 그래서 React에서는 좀 더 복잡하다. 빌드 단계를 거쳐야 하기 때문. 개발자들이 편한 방법대로 코드를 작성하면 내부적으로 변환된 후 브라우저에 도달. React에서는 개발 서버도 필요하다. 이 개발 서버가 리액트 애플리케이션을 로컬 호스팅한다. 페이지를 reload하지 않아도 업데이트됨. 도구를 이용해서 React 프로젝트를 만들어야 한다 가장 많이 쓰이는 것은 create-react-app 하지만 이 create-react-app을 쓰려면 Node.js를 먼저 설치해야 한다 No..

    Time Waits For No One _ ⌚

    유투브에서 찾아본 시간관리 방법 정리하기 이다지선생님 전날에 A랭크, B랭크처럼 랭크를 나눠서 해야 할 일을 짠다 시간별로 계획을 짠다 계획 당장 급하진 않지만 꾸준히 해야 하는 것은 어떻게 메모해야 하나? 루틴을 만든다 ex) 아침에는 항상 해야 하는 일 따로 이 일을 하기 위해서 시간을 내지 않아도 되게끔 만들어야 한다 어느 정도로 스케쥴을 자세하게 짜야 하는지? 최대한 잘게 쪼개기. 이동시간 포함 노는 시간도 포함하기 이렇게 전날 계획을 짜놓으면 인생을 잘 경영하고 있다는 만족감이 있다. 아침 일기 다음날은 일어나자마자 스케쥴을 확인하고 아침 일기를 간단하게 쓴다 지금 당장 집중해야 하는 것 지금 감사한 것 으로 나눠서 작성한다. 스스로를 다독이면서 아침을 시작 다짐의 말이나 이번주 미션 같은 것을..

    [ 🐱‍💻 강의 노트 ] React 완벽 가이드 강의 정리

    0. 모바일 앱과 웹의 차이 모바일 앱은 화면 전환이 원활하게 이루어져서 기다릴 필요가 없다 하지만 웹사이트는 아니다 웹사이트를 클릭하면 요청이 서버에 전송되고 새로운 html 페이지가 브라우저로 보내져 화면에 표시됨 => 무겁고 불편하다 1. 웹에서 일어나는 사이클 이런요청과 반응 사이클을 자바스크립트로 분해해보자. JS는 개발자들이 브라우저에서 로직을 실행할 수 있게 해준다 => 사용자들이 보는 것을 조작할 수 있음 브라우저에서 JS는 DOM을 조작할 수 있는데 이를 통해 html이 렌더링된다. 이를 통해 새로운 html 페이지를 가져오지 않고도 새로운 것을 사용자에게 보여줄 수 있다 ✍ React가 필요한 이유 React.js는 클라이언트 사이드의 자바스크립트 라이브러리고 client-side의 자..