분류 전체보기

오늘도 기운차게 강의를 들어 보겠습니다! OSI 7계층 클라이언트와 서버 🖥️ 클라이언트 : 네트워크상에서 서버에게 서비스를 요청하는 장비 컴퓨터, 노트북, 핸드폰, 아이패드 등… 서버 : 네트워크상에서 서비스를 제공하는 장비 공유기, 도메인 관리기(DNS), IP 할당기(DHCP), 시간관리기(NTP), 게이트웨이 등… 서버 종류 및 서비스 공유기 : 네트워크에서 파일이나 프린터를 공유하게 해준다. 도메인 관리기(DNS) : 도메인 주소(naver.com)로 IP주소를 찾게 해준다. IP 할당기(DHCP) : 네트워크에 새로 접속한 장비에 IP주소와 네트워크 설정을 해준다. 시간관리기(NTP) : 네트워크상에 장비들의 시간을 알맞게 맞춰준다. 게이트웨이 : 여러대의 장비가 외부 네트워크에 접속하게 해준..
어제에 이어 CS강의를 진행해 보도록 하겠습니다! 1. DBMS 정리 1-1. DBMS 개요 DBMS란 Database Management system의 준말로 모든사용자가 데이터를 모으고 사용 할 수 있습니다. 1-2. DBMS 용어 튜플(Tuple) 테이블에서 행을 의미합니다. 같은 말로는 레코드(Record) 혹은 로우(Row)라고도 부릅니다. 튜플은 릴레이션에서 중복되는 값을 가질 수 없습니다. 튜플의 수는 카디날리티(Cardinality) 라고 합니다. 어트리뷰트(Attribute) 테이블에서 열을 의미합니다. 같은 말로 칼럼(Columm)이라고도 부릅니다. 어트리뷰트(Attribute)의 수를 의미하는 단어는 **디그리(Degree)**라고 합니다. (Degree : 정도 → 도가 지나치다.)..
이번주부터는 cs에 대해서 공부를 시작합니다! CPU와 메모리 우리가 사용하는 컴퓨터의 구조를 일상생활에 비교를 해보자! 푸드 트럭 컴퓨터 컴퓨터에는 입력장치 출력장치 기억장치 연산장치 등등이 있습니다. 입력장치 마우스 키보드 카메라 출력장치 스피커 모니터 등등 cpu의 구성 사람의 두뇌에 해당되는 cpu의 구성이다. cpu안에서도 산술 논리를 위한 (ALU), 제어(CU)를 위한 버스, 메모리 유닛으로 레지스터와 캐시가 있습니다. 더보기 프로세서에 위치한 고속 메모리로 극히 소량의 데이터나 처리 중인 중간 결과와도 같은 프로세서가 바로 사용할 수 있는 데이터를 담고 있는 영역을 레지스터라고 한다. 컴퓨터 구조에 따라 크기와 종류가 다양하다. 용도에 따라 범용 레지스터와 특수목적 레지스터로 구분된다 범용..
이렇게 또 한주가 흘렀습니다. 이번주는 그래도 문제가 저번주보다 쉽다고 해야할지? 고민을 하다보니 문제가 풀리는 것들이 많아져서 기분이 좋았습니다. 이번주는 DFS와 BFS를 알게되어서 기분이 아주 좋았습니다. 가장 기억에 남는 문제는 n-queen이였던 것 같습니다. 이거는 코드를 만드는 것도 어려웠는데 알고리즘을 짜는게 너무 생각해야 할 것이 많아서 너무나도 힘들었습니다..ㅠ 덕분에 알고리즘을 생각하는데 도움이 많이 된 것 같기두 하구 나의 실력도 많이 올라간 것 같아서 기분이 좋습니다. 그리고 매일매일 커밋을 해서 올리는 습관도 만들어두는 것이 좋을 것 같습니다. 잔디 심자..ㅎㅎ billyhyunjun/sparta (github.com) GitHub - billyhyunjun/sparta Cont..
오늘은 문제를 먼저 풀이를 다해서 문제 풀이 부터 적도록 하겠습니다 가장 먼 노드 처음에 문제를 잘못 이해 하여서 최단거리계산 중에서 가장거리가 긴 노드의 거리인 줄 알고 계산을 했는데 그게 아니라 가장거리가 긴 노드의 갯수는 몇개 인가 였습니다… return distance.count(max(distance)) 그래서 카운트를 써서 리스트 중에서 맥스 값과 같은 수가 몇개가 있는지 출력해주면 됩니다! # Code from collections import deque def solution(n, edge): # 그래프 생성 graph = [[] for _ in range(n+1)] # 노드거리 distance = [0 for _ in range(n+1)] # 그래프 엮기 for i in edge: gra..
튜터님 강의 다 기억해두자고 트리란 무엇인가?? 1대 n의 관계를 가지고 있어야 한다. 순서가 없음. 부모와 자식 관계가 있다. 서브 트리 = 트리중에서 다시 루트를 잡아서 보는 방법 리프 노드 = 자식이 없는 노드 자손 노드 = 자신 밑에 있는 모든 자식 노드 완전 이진트리 = 1,2,3,4,5 노드가 순서대로 있을 때 그냥 이진트리는 1,2,5,6,7이라도 상관없다. 트리 순회 방법 전위 순회 위에서 부터 아래로 중위 순회 제일 좌 또는 우측 부터 진행 후위 순회 최하위 부터 최상위 까지 이진 탐색 트리 왼쪽은 부모보다 작은 값 오른 쪽은 부모보다 큰 값 여기서 중위 순회를 하면 내림차순 오름차순이 된다. 힙(heap) 키값이 큰 노드나 작은 노드를 찾는 법 키값에 중복이 있으면 안됨! heap이 아..
오늘도 튜터님의 강의로 하루를 시작해 봅시다! Queue를 이용한 너비우선 탐색 BFS from collections import deque 큐를 사용하기 위해서 import 해주어야 하는 순열을 구하는 방법을 재귀가 아닌 큐를 이용해서도 만들어 줄 수 있다 이때 맨처음에 1,2,3,4를 큐에 넣어주고 만들어지는 조합마다 다시 큐에 마지막에 넣어준다는 개념으로 접근을 할 수 있다. BFS 미로탐색 풀이 이 개념을 정확하게 이해하게 되었습니다. bfs를 위해서는 큐를 주로 사용하고 dfs를 위해서는 재귀를 주로 이용한다는 말이 이제는 이해가 되더라고요...ㅎㅎ BFS의 장점 최단경로 찾기가 가능하다! 전염이 되는 경우! DFS와 달리 제일 먼저 얻어진 해가 최단경로가 된다! 가는 길이 한 가지 방법이 아닐..
어제 다 풀지 못했던 문제를 마저 풀었습니다.. 피보나치 1 코드가 기본적으로 주어지 때문에 파이썬 방식으로 기입을 하고 카운터를 넣어주면 됩니다. 다만 python3으로 실행하면 시간 초과가 되므로 pypy3로 작동을 해야 하더군요 count1 = 0 count2 = 0 def fib(num): global count1 if num == 1 or num == 2: count1 += 1 return 1 # 코드1 else: return fib(num - 1) + fib(num - 2) def fibonacci(num): global count2 f = [0] * (num + 1) f[1] = f[2] = 1 for i in range(3, num + 1): count2 += 1 f[i] = f[i - 1..
오늘도 알고리즘의 한 주가 시작 되었습니다! 튜터님의 강의 스택 2 탐색 알고리즘에 유망한지 아닌지를 따녀야 한다. 기본적인 예시! 의사결정 공간 트리, 상태 공간 트리 백트레킹에 개념중에 중요한 부분 이거 아주 중요합니다.. 이 순서를 잘 몰라서 자꾸 틀렸어,,, DFS, BFS 깊이 우선 탐색, 넓이 우선 탐색 드라마 한 방에 몰아보기 : DFS 드라마 하나 씩 나올 때 마다 보기 : BFS DFS(Depth First Search) 깊이우선탐색 DFS는 스택을 이용하기 때문에 stack을 이용해서 만든다.!!! BFS 이 친구는 큐를 이용해서 풀이! 햄버거 다이어트 처럼 재료를 골라야 할 때 재료는 모두 고르는 것이 좋은 것이 아니라 재료의 조합에 따라 값이 다른 경우를 비교 할 때!! 이걸 더 짧..
이번주는 알고리즘 문제를 풀이를 하는 주간이 였습니다. 처음에는 아무것도 몰랐다.... 정말로 초기에 주어지는 알고리즘의 문제를 풀었을 때에는 어.. 시간 만 조금 들여서 생각만 하면 풀수 있는 문제겠는데?? 라는 생각이 들었습니다.. 그러나 완전 탐색, 그리디, 재귀함수, 이진 탐색, 백트래킹 여러가지의 문제가 나오면서... 똑같은 알고리즘 문제를 풀면서 이렇게 다양한 풀이 방법이 있구나 라는 것을 알게 되어서 좋은 점도 있지만.. 문제를 풀면서 막히게 될 때 풀이 방법을 찾아가는 것이 너무나도 고역이였습니다,ㅜ ㅜ 튜터님에 알려주면 내것이 되지 않기에 직접 풀어야 한다는 마음은 알지만 이제 코딩에 걸음마를 때는 나에게 절벽밑으로 밀어버리는 문제 난이도에 아주... ㅋㅋㅋㅋㅋㅋㅋㅋ (튜터에몽 너무해) ..