분류 전체보기
-
[SW 정글 31일차] 오늘은 C 포인터기타/SW 사관학교 정글 2021. 9. 2. 01:57
오늘은 어제에 이어 C언어를 공부했다. C언어의 장벽인 포인터 공부를 했고 아직은 이해할만한 영역이라고 생각한다. 일단은 포인터를 써서 뭔가 구현한 것은 아니여서 어려움을 느끼지는 못했지만 내 것처럼 잘 쓰면 좋겠다. 1. 포인터란? 포인터(pointer)는 직관적으로 의미하는 것을 말하면 '가리키는 것'이다. int, float, char 형(type)과 같은 변수와 마찬가지로 포인터(pointer)도 하나의 변수이다. 포인터는 변수로서 메모리 상에 위치한 특정 데이터의 시작 주소값을 보관한다. c언어에서는 변수를 선언할 때 int형인지 char형인지 미리 같이 선언하여 해당 변수가 어떠한 type의 데이터를 담을지를 알려준다. 포인터(pointer)도 마찬가지로 int, char 같은 형(type)을..
-
[SW 정글 30일차] C언어는 배열부터 맛보기기타/SW 사관학교 정글 2021. 9. 1. 02:03
오늘은 이번 주 목요일부터 사용하게 될 C언어의 기본 문법을 공부했다. C언어를 접하는게 처음이 아니고 앞 부분의 내용은 형태는 다르지만 어느정도 python을 통해 알고 있는 내용이여서 C언어의 벽을 느끼게 하는 포인터부터 공부하려고 했다. 하지만, 포인터를 공부하면서 같이 나오는 것이 배열이라는 것이였고 배열부터 차근차근 공부해야 포인터를 알아볼 때 좋을 것같아 배열을 공부하기 시작했다. 1. 배열 알아보기 배열을 알아보기 전에 C언어에서 값을 메모리를 다루는 형식을 먼저 봐보자. C언어에서 메모리를 다룰 때에는 변수(variable)을 통해서 메모리에 값을 읽고 쓰고를 한다. 어떠한 타입을 가지고 있는 변수의 이름 하나느 변수의 타입에 해당하는 만큼의 공간을 메모리 상에서 차지하고 있다. 예를 들어..
-
[SW 정글 29일차] @lru_cache기타/SW 사관학교 정글 2021. 8. 31. 01:33
오늘은 이번 주에 같은 조가 된 동료가 알고리즘 문제를 풀면서 사용했다는 @lru_cache라는 것을 알아보려고 한다. 외장 라이브러리를 불러와서 쓰는 것이여서 코테에서 막힐 수도 있지만 알아두면 좋은 것같다. 1. functools 모듈 @lru_cache는 functools 모듈에 속해있는 데코레이터이다. 그러면 @lru_cache를 알아보기 전에 functools 모듈에 대해 알아보자. functools 모듈은 python 표준 라이브러리 중 하나로 고차함수(함수를 반환하거나 다른 함수를 인수로 사용하는 함수)로 작업하기 쉽게 해주는 기능을 제공한다. 공식문서 상에는 functools 모듈에 12개의 데코레이터가 정의되어 있고 오늘 알아볼 lru_cache를 제외하고 다른 것들도 알아보고 싶다면 공..
-
내 블로그를 구글 검색에 노출시키는 방법 (feat. 구글 서치 콘솔)기타/SW 사관학교 정글 2021. 8. 30. 23:14
오늘은 이전에 궁금증을 가졌던 '왜 내 블로그는 구글에 검색해도 나오지 않을까?'를 해결했다. 해결하는 과정을 정리해서 나처럼 블로그 조회수 떡상을 원하는 사람에게 정보를 공유하고자 한다. 1. 구글 크롤링에 잡히게 하기 먼저, 구글에 어떠한 키워드를 검색했을 때(ex, sw 사관학교 정글) 내 블로그가 크롤링 되어야 노출이 가능하다. 하지만 티스토리로 만든 블로그의 기본 html에는 구글 서치나 네이버 서치로 크롤링을 위한 meta데이터가 head태그에 존재하지 않는다. 또한, 구글 서치에 나의 블로그 글들이 크롤링 되기 위해서는 나의 블로그에 대한 RSS와 사이트맵을 제출해주어야 한다. 사이트맵과 RSS에 대한 개념은 아래의 블로그를 참고하면 좋을 것같다. https://terran6820.tisto..
-
[SW 정글 28일차] 연결리스트 만들어보기기타/SW 사관학교 정글 2021. 8. 30. 02:07
연결리스트, 나는 파이썬에서 리스트 자료형을 쓰면서 인덱스로 원소에 접근할 수 있고 순서도 있으니 굳이 연결리스트가 따로 있어야 했나라는 의문을 가지고 있었다. 하지만, 오늘 연결리스트에 대해 공부하고 난 후, 기존에 있던 배열과 연결리스트의 차이점을 알게 되었고 연결리스트의 확장으로 이중연결리스트, 환형 연결리스트, 환형 연결리스트까지 살펴볼 수 있는 시간을 가졌다. 1. 연결 리스트란? 연결 리스트를 정의하기 전에 리스트라는 것은 순서가 있는 데이터를 늘어놓은 자료구조이다. 연결 리스트는 구조가 단순한 리스트 중 하나로 데이터가 순서대로 나열되고 각 데이터가 화살표로 연결되어 자신의 뒤에 어떠한 데이터가 오는지 알 수 있는 리스트이다. 연결 리스트의 기본 구조는 위의 그림과 같다. 연결 리스트에서 각..
-
[SW 정글 27일차] 분할정복과 DP는 다른가?기타/SW 사관학교 정글 2021. 8. 29. 02:23
목요일부터 오늘까지 Dynamic Programming을 공부하고 문제를 풀면서 오늘에서야 든 생각은 아니지만 분할정복과 접근법이 굉장히 비슷하다는 생각이 들었다. 그래서 이 둘의 차이점을 알아보고 정리해보려고 한다. 1. 분할정복과 DP의 개념 - 분할 정복은? 분할 정복에 대해서는 아래 블로그 글에 정리한 바 있다. https://straw961030.tistory.com/193 [SW 정글 14일차] 분할 정복 1. 분할 정복 분할 정복은 주어진 문제를 원래 문제와 유사하지만 크기가 작은 몇 개의 부분 문제로 분할하고 부분 문제를 재귀적으로 풀고 찾은 해를 결합하여 원래 문제의 해를 만들어 내는 방 straw961030.tistory.com 분할 정복은 주어진 문제를 원래 문제와 유사하지만 크기가 ..
-
[SW 정글 26일차] Knapsack Problem 이해하기기타/SW 사관학교 정글 2021. 8. 28. 02:14
오늘 푼 문제 중에서 Dynamic Programming을 사용하여 푸는 Knapsack Problem을 만났다. 오늘 공부시간을 DP문제풀이에 쏟은 만큼 Knapsack Problem의 문제 접근법에 대해 정리해보려고 한다. https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 1. 문제가 뭔데? 최대 용량이 정해진 배낭에 무게와 값어치가 다른 물건들을 담으려고 하는데 담긴 물건들의..
-
[SW 정글 25일차] LCS는 왜 그렇게 될까?기타/SW 사관학교 정글 2021. 8. 27. 01:35
오늘은 다이나믹 프로그래밍, 그리디 알고리즘을 공부하는 주차로 다이나믹 프로그래밍 문제 중에 LCS(Longest Common Subsequence, 최장 공통 부분 수열)라는 문제가 있었다. https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 이전에 푼 경험이 있어 접근법을 알고 있어 나는 풀기는 했지만 다른 동료가 와서 왜 이렇게 되는지에 대한 질문을 던졌고 나는 명확한 답변을 해주지 못했다. 질문은..