
사전학습한 내용을 내 방법대로 정리했다. 최신내용으로 업데이트 했다.

Velog에 앞에 포스팅을 보면 알겠지만, 졸업을 하고 여러 도전을 하려 했다. 물론 중소나 중견기업 개발자로 취직하여 경력을 쌓고 이직하는 방법도 있을 것이다. 그러나 주변 개발자의 이야기도 많이 들어 봤고, 중소나 중견 기업에 있는 선배의 이야기도 많이 들었는데 배
3월 10일(JWT와 Jinja2를 사용한 미니프로젝트 시작) 팀원 3명과 태어나서 처음 들어보는 JWT, Jinja2를 사용하여 웹사이트를 만드는 것이 과제였다. 바로 다음날인 11일날 11시에 있을 기획 발표회를 위해 와이어프레임이라는 것을 배웠다. 와이어프레임이라
앞으로 한 달간 알고리즘에 대해 공부한 내용을 TIL로 포스팅할 예정이다.컴퓨터 시스템이라는 책을 1-4까지 읽고 백준으로 알고리즘 문제를 풀었다.본격적인 백준 문제를 풀었다. https://github.com/prtky/JungleBackjoon
14번 문제(2577) 숫자의 개수 세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하는 것이다. 일단 3자리를 받을 수 있는 인풋을 받고 곱한다. 그럼 값이 나올 것인데
24번 문제(2628) 종이자르기 먼저 전체 가로세로값, 몇번 자를지, 자르는 방향과 위치를 인풋으로 받아야한다. 3번째 줄부터는 첫 요소는 0이면 가로 1이면 세로이다. 대략적인 흐름은 알겠다. 그런데 중간에 자른 선과 자른 선 사이의 길이는 어떻게 구해야하는지 모르
점심식사를 하기전 오전시간에는 퀴즈나 시험 등을 제출할 깃허브 세팅법에 대해 알아보았다. 코치님께서 깃허브의 전체적인 로직이나 세팅 방법을 상세히 알려주셨다.맛있는 돼지갈비찜을 먹고 알고리즘을 풀려했으나 코치님과 팀별 면담이 있어 면담을 진행했다.
https://github.com/prtky/JungleBackjoon 해당링크를 들어가면 코드와 주석만 보실수 있습니다.
https://github.com/prtky/JungleBackjoon 해당링크를 들어가면 코드와 주석만 보실수 있습니다. 차이를 최대로, 외판원 순회-2, Z, 안전영역
첫주차의 마지막 날로 더하기사이클(1110), 123더하기(9095), 부분수열의 합(1182) 알고리즘 문제를 풀어보았다.
전에 백승현 코치님이 말씀하신 퀵소트를 주로 쓰는 이유가 무엇인가? 에 대해→ 퀵 정렬의 루프는 대부분 컴퓨터 아키텍처에서 효율적으로 작동하도록 설계되어 있습니다. 메모리 참조가 지역화되어 있어 CPU 캐시의 히트율이 높아지기 때문입니다.라고 답했다. 이걸로는 쉽게 이
여기에서는 배열, 문자열, 반복문, 재귀함수,복잡도, 정렬, 완전탐색(BigO, 시간, 공간), 정수론 등의 Week01의 핵심 내용을 정리해보았다.

일주일이 지나고, 새로운 주차가 시작되었다. 새로운 팀원분들과 새로운 마음으로 시작하겠다.이번주의 새로 배울 내용은 이분 탐색, 분할 정복, 스택, 큐, 우선순위 큐, Linked List, 해시 테이블 이다.

2110 공유기설치, 2470 두 용액, DP란 무엇인가?

오늘은 분위기 전환을 위해 본가에 다녀왔다.11053 가장 긴 증가하는 부분 수열에 대해 풀어보았다.
8983 사냥꾼, 2630 색종이만들기, 1629 곱셈

스택은 데이터를 임시 저장할 때 사용하는 자료구조. 데이터의 입력과 출력 순서는 후입선출 방식입니다. 큐도 스택과 비슷합니다. 그러나 후입선출인 스택과 다르게 선입선출 구조를 가집니다.
오늘은 퀴즈가 있는 날입니다. 오늘은 문제량이 엄청 많습니다. 시험이 얼마 안남았기 때문입니다.

힙은 부모의 값이 자식의 값보다 항상 크다라는 조건을 만족하는 완전 이진 트리입니다. 대소 관계가 일정하다고 볼 수 있습니다. (부모의 값 ≥ 자식의 값)파이썬에서 힙 정렬은 heap모듈 함수를 통해 쉽게 구현가능합니다.

오버헤드: 프로그램을 돌리기 위해 필요한 여러 복사과정이 프로그램의 “실제 작업”을 느리게 하는 것이다.이러한 복사과정을 가능한 빠르게 동작하도록하기 위해 고안된 것이 캐시이다.일반적인 레지스터 파일은 수백 바이트의 정보를 저장하는 반면, 메인 메모리의 경우는 십 억개
시험 전날이다보니 여러 문제들을 풀었고, Week 02에서 못풀었던 문제 3개가 있는데, 코드까진 올려두겠다.이해는 다음에 해보겠다.9:40 ~아침에 일어났는데, 목이 너무 아팟다. 요즘 감기가 유행이라 걸린것 같다. 목조심하고 따듯한 물 많이 마셔야겠다.이번주 백준문
오늘은 Week 2의 시험과 새로운 발제가 나오는 날입니다. 그렇기 때문에 9시 와서 코드들을 복습하고, 10시에 시험을 치뤘습니다. 이후 서로의 코드를 보고 리뷰를 하며 식사하고 돌아와 코치님의 발제를 들었습니다.

링크드 리스트는 동적할당이 유용하고, 삽입/삭제가 유용합니다.(일반적인 리스트에서의 밀리는 시간을 고려하지 않음) 그러나 탐색시간이 오래 걸린다는 단점이 있습니다.

글에 들어가기 앞서 설현아님 벨로그를 참조해서 작성하였습니다. 디테일한 내용(코드)은 해당 벨로그를 참조해주세요!(내용 공유해주심에 감사드립니다)
해시 충돌이란 무엇이며 그것이 발생하는 원인과 해결하기 위한 다양한 방법들 중, 체이닝을 설명하세요.해시 충돌: 두 개 이상의 아이템이 동일한 저장공간에 지정되는 현상입니다.

알고리즘 3주차 여담입니다

그래프(vertex, edge, node, arc) 위와 같은 것을 우리는 알고리즘에서 그래프라고 합니다. 그림에서도 알 수 있듯이 그래프는 Vertex라는 노드와 Edge라고 불리는 간선의 집합으로 구성됩니다.

데이터 사이의 계층 관계를 표현하는 트리 구조를 알아봅니다. 무방향이면서 사이클이 없는 연결 그래프임. 각 노드는 하나의 알파벳 문자를 가지고, 루트에서 임의의 노드까지 경로를 따라가면 해당 경로에 해당하는 문자열을 찾을 수 있다.

BFS / DFS에 대해서 특징, 장단점, 시간복잡도를 알아보겠습니다.

위상정렬을 알기전에 진입차수(indegree), 진출차수(outdegree)의 개념을 알아야한다. 다음 게시글을 참고하자.
오늘부터 본격적으로 알고리즘 문제를 풀었다. 1. 1991 트리 순회, 2. 5639 이진 검색 트리를 풀어보았다.

오늘은 일요일이라 늦잠도 자고 휴식을 취했다.시내에 가서 병원과 햄버거(전부터 먹고 싶었던 나폴리맛피자 버거!)도 먹고, 서점도 갔다왔다.생각보다 몸상태가 좋지 않아서 조심해야겠다.
오늘은 최소 신장 트리에 대해 완벽히 이해하고 코드 구성에 대해 공부했다. 3. 1197 최소 스패닝 트리, 1260 DFS와 BFS 문제를 풀었다.

최소신장트리 신장 트리는 주어진 방향성이 없는 그래프의 부분 그래프들 중에서 모든 정점을 포함하는 트리를 의미. 위 사진에서 오른쪽 그래프는 왼쪽 그래프의 신장 트리라고 볼 수 있습니다.

다익스트라 알고리즘 방향 그래프 혹은 무방향 그래프에서 하나의 시작점으로부터 다른 모든 정점까지의 최단 거리를 구해주는 알고리즘. 매번 최단 거리를 갱신한다.(우선 순위 큐 기준)

멀티프로세서: 여러개의 cpu 집약체멀티코어: 하나의 프로세서에 있는 pc나 alu나 레지스터 등 코어가 여러개멀티쓰레딩(하이퍼 쓰레딩): 하나의 CPU가 여러개의 제어 흐름을 실행할 수 있게함.(매 사이클마다 실행할 쓰레드를 결정하여 효율적으로 쓰레드 사용)멀티프로세

B-Tree는 이진트리에서 발전되어 모든 리프노드들이 같은 레벨을 가질 수 있도록 자동으로 균형을 맞추는 트리입니다. 특징과 시간복잡도에 대해서 배워봅니다.

오늘 퀴즈를 진행했고 배운 백준내용은 11724 연결 요소의 개수, 1753 최단경로, 1916 최소비용구하기, 2606 바이러스, 11725 트리의 부모찾기, 1707 이분그래프, 21606 아침 산책, 14888 연산자 끼워넣기, 2178 미로 탐색 입니다.
9:30 ~어제 풀었던 내용을 복기했다. 18352 특정 거리의 도시 찾기, 2665 미로만들기, 7569 토마토, 3055 탈출, 2252 줄 세우기, 2637 장난감 조립을 풀었다.

9:00 ~시험을 치기 전에 복습을 하고, 시험에 쳤다.13:00 ~ 14:004주차 발제를 진행했다.14:00 ~ 15:00코치님들과 함께 티타임을 했다. 1338 바닥 장식, 2667 단지번호붙이기, 18405 경쟁적 전염

여러 개의 하위 문제를 먼저 푼 후 그 결과를 쌓아올려 주어진 문제를 해결하는 알고리즘.상황에 따라 구현 방식은 다르다. 가장 쉬운 문제는 피보나치 문제이다. 원래 피보나치 수열은 N번째 항을 재귀로 호출해 중복된 연산으로 계산이 오래걸린다.

새로운 주차가 시작됐다. 계획을 다음과 같이 수립했다.키워드: 동적 프로그래밍, 그리디 알고리즘컴퓨터 시스템: 3장 프로그램의 기계 수준 표현 / 알고리즘: 2748 피보나치 수 2, 1904 01타일, 9084 동전, 9251 LCS

LCS는 두가지의 의미가 있습니다. 기본적으론 최장 공통 부분수열(Longest Common Subsequence)이고, 최장 공통 문자열(Longest Common Substring)을 의미하기도 합니다.
아침부터 점심 지나기까지 3번 배낭 문제를 Top-down 방식으로 푸는 것에 시간을 쏟았다. dp Top-down방식의 문제가 별로 없어 이번 문제에서 연습을 하고자 했다. 12865 아주 평범한 배낭

오늘은 본가에 다녀왔다. 머리도 정리해야하고, 다음주부터 있을 C언어 전공책을 가지러 갔다. 그런 관계로 오늘은 토요일날 정리하다 못한 컴퓨터 시스템을 정리하고 공부를 좀 더하다가 집에 들어가보겠다. 본가 다녀온 동안 먹은 것들을 사진으로 남겨보았다.

3장에서는 기계어 코드와 기계어 코드의 읽기 쉬운 형태인 어셈블리 코드에 대해 자세히 알아봅니다.기계어 코드를 배워야하는 이유는 무엇인가? 어셈블리 코드를 이해하면 컴파일러의 최적화 성능을 알 수 있으며, 코드에 내재된 비효율성을 분석할 수 있습니다. 원리를 알고 있으

컴퓨터 시스템 3.4, 3.8 내용을 정리했습니다. 또한 플로이드 와샬을 대비하기 위해 백준 11404 플로이드을 풀었습니다. 맥북 M1에서 가상화로 어셈블링을 해봤습니다.

플로이드 알고리즘 2차원 배열에서 모든 정점 쌍 사이의 최단 거리를 구해주는 알고리즘 입니다. 방향/무방향 그래프 둘다 사용 가능합니다. 또한 음의 가중치인 간선이 존재할 수 있으나 음의 가중 순환(사이클)이 없어야합니다.

x86-64 프로세서는 64비트 값을 저장할 수 있는 16개의 범용 레지스터(general-purpose register)를 가지고 있습니다. 이 레지스터들은 정수 데이터와 포인터를 저장하는 데 사용되며, 모두 %r로 시작하는 이름을 가지고 있지만

C에서 배열은 스칼라 데이터를 보다 큰 자료형으로 연계시키는 수단이다. 단순해 기계어로의 번역도 쉽다. 특이한 점은 배열 원소들에 대한 포인터를 만들고 이 포인터 간에 연산을 할 수 있다. 기계어에선 주소 계산으로 번역한다.
오늘은 4주차 퀴즈를 진행하는 날입니다.9:35 ~ 12:00플로이드 와샬 손코딩과 vs code 코딩 총 2번 연습 완료했습니다.어제 팀원분들이랑 공부한 내용(컴퓨터 시스템)을 먼저 정리했습니다.

3.5 산술 연산과 논리 연산 해당 표는 정수와 논리연산의 리스트를 보여준다. 오퍼랜드의 길이에 따른 다양한 변형이 가능하기 때문에 대부분의 연산을 인스트럭션 클래스에 따라 나열하였다. (leaq는 길이 따른 변형 없음)

탐욕 알고리즘이라고도 하며 매 선택에서 지금 이 순간 당장 최적인 값을 선택하여 적합한 결과를 도출하는 알고리즘 입니다. 그렇기 때문에 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않습니다.
내일이 시험이기 때문에 DP와 그리디 알고리즘을 더욱 많이 학습했습니다. 오늘 한 백준 문제는 11047 동전 0, 1541 읽어버린 기호, 1931 회의실 배정, 1946 신입사원, 11053 가장 긴 증가하는 부분 수열 입니다.

오늘은 알고리즘 주차의 마지막 날이다. 마지막 시험을 진행했다. 백준 14916 거스름돈, 1890 점프, 1379 강의실 2
프로시저 호출 시 지역 변수와 매개변수를 저장하기 위한 메모리 공간입니다.선언되는 순서와 반대로 메모리가 해제되는 LIFO(Last In First Out) 구조를 가지고 있습니다.용도함수의 로컬 변수 저장: 각 함수 호출 시 그 함수의 로컬 변수들이 스택에 저장됩니다
어셈블리어 동작 과정만 보고 실제 개발은 안해도된다.(어셈블리어 코드 작성)대부분 핀트OS주차에서 추상화적인 지식을 해소할 수 있을 것이다.C나 파이썬이 어떻게 어셈블리어로 돌아가는가? 예를 들어 if, while문 등의 광정(이론)을 아는 것이 중요하다. 특히나 구성

인프런에서는 자막을 번역하고 다양한 언어의 더빙까지 지원한다고한다.또한 업스케일링 기술을 도입해 저화질을 고화질로 바꾸는 서비스도 제공한다고한다.이렇게 다른 강의 시스템과의 차별성을 가지기 위해 노력한다고 하신다.