목록분류 전체보기 (10)
개발일지0813
정렬의 종류 정렬이란 무작위로 나열된 자료를 특정 기준을 가지고 순차적으로 재배열하는 것을 의미한다. 이때 key라는 것이 존재하는데, 키는 자료를 정렬하는데 사용하는 기준이 되는 특정 값이 된다. 정렬은 정렬 장소에 따라 크게 내부정렬과 외부정렬로 나눌수가 있다. 외부정렬의 경우 메모리의 외부인 보조기억장치에서 정렬을 하는것이 특징이다. 보조기억장치에서 정렬을 하기 때문에 내부정렬보다 비교적 속도는 떨어지지만 대용량의 자료를 정렬하는 것이 가능하다. 대표적인 예로는 병합 방식을 이용한 정렬이 있다. 내부 정렬의 경우 메인 메모리에 올려서 빠르게, 비교적 적은 양의 데이터를 정렬하는 것이 특징입니다. 대표적인 예로는 앞으로 다룰 선택정렬, 버블정렬, 퀵 정렬, 삽입 정렬, 셸 정렬, 병합정렬, 히프 정렬..
개념 TF-IDF TF-IDF는 Term Frequency - Inverse Document Frequency 의 약자로써, 정보 검색과 텍스트 마이닝에서 이용하는 가중치이다. 여러 문서로 이루어진 문서들의 집합이 있을때, 어떤 단어가 특정 문서내에 얼머나 중요한지 추출해 내는 통계적 수치를 이용하여 문서의 추출하는데 이용된다. 또한 문서 들 간의 유사도를 판단하는 데 사용되기도 한다. TF-IDF의 값은 TF와 IDF 값을 곱한 값이다. TF 단어 빈도, term frequency, 는 특정 단어가 문서내에 얼마나 자주 등장하는지 나타내는 값이다. 값이 증가함에 따라 해당 단어의 중요도 또한 증가 한다고 해석 할 수 있다. tf(t,d) 로 표현하며 가장 단순한 방식은 다음과 같다. 그 외에는 빈도 계..
사실 소스트리 사용법 간단하게 라도 전부 다 작성 한 후에 오류에 대해서도 천천히 적고 싶었는데 해당 오류는 왜 지금 작성하냐면..... 작년쯤에도 비슷한 문제로 N시간을 삽질하며 고생했는데 한동안 안쓰다가 깃헙과 소스트리 연동 시켜서 다시 쓸라하다가 또 고생해서 미래의 내가 또 같은 실수 할 것같아서 정리합니다... 문제는 어디서 시작되었냐면 깃헙을 새로운 계정을 생성하면서 시작되었습니다. (.. ) 소스트리에는 구계정이 연결이 되어있었고, 소스트리 설정에 신계정을 연결 시켜뒀는데!! repository도 만들고 commit 까지 문제 없는데! 원격 저장소인 깃헙에 push 할라고 하니까 자꾸만 오류가 나는것. 처음에는 권한 문제 인줄 알고 이리 저리 뒤져보다가 결국 화나서 깃헙 구계정 아예 삭제 해버..
앞서 가장 기초가 되는 저장소를 만드는 것에 대해 다루어 보았습니다. 새로운 repository가 생성이 되었으면 우리는 이제 원래의 목적이었던 '버전' 을 생성할 것입니다. 예시를 하나 들어보죠. 저장소에 새로운 프로젝트를 시작합니다. 저같은 경우에는 visual studio를 켜서 cpp 파일을 하나 생성했습니다. 해당 파일에 단순하게 cout
이전 글에서 우리는 깃과 소스트리를 설치를 했다면 이제는 이둘을 이용하는 법에 대해 다루겠습니다. 여기서 잠깐, 저장소란 무엇이냐? 저장소라는 건 영어로 Repository라고 칭하기도 합니다. 저장소 = 프로젝트의 디렉토리 라고 생각하면 됩니다. 우선은 가장 처음으로 프로젝트를 시작하기 위해서는 저장소를 만들어야 겠죠? 소스트리를 실행시키고 나서 우리는 ADD REPOSITORY 라는 것을 눌러줍니다. 위와 같은 화면이 뜹니다. 그렇다면 destination path에는 우리가 프로젝트를 앞으로 진행함에 있어서 필요한 파일이나 코드들 등을 담아둘 폴더! 의 path를 가져오면 됩니다. 새로운 저장소를 만드는 것 이기 때문에 빈 폴더를 만들어서 선택하도록 합시다. 저는 이번에 컴퓨터에 내장 되어있는 20..
버전 관리 시스템 (VERSION CONTROL SYSTEM) 1. 버전 버전이란 결국 어떻게 정의 할 수 있는 걸까요? 버전은 유의미한 변화들을 가졌을때 한단계씩 업그레이드 된다고 이야기를 할 수 있어요. 실질적 변화가 있는, 예를 들어 ver1.0 -> ver 2.0 으로 변화하는 경우. 안드로이드가 오레오에서 파이로 업그레이드 되는 것 처럼 기능의 개선. 고객의 요구 수용. UI 전면 수정, 오류의 정상화 등 그런 변화가 존재할 때 우리는 새로운 버전이라고 이야기 할 수 가 있어요. 그러나 이 버전이 큰 프로젝트 일수록 많아질텐데, 버전이 여러개가 되면 제대로 그 트랙을 따라가기에 너무 힘들때가 많죠. 아래가 그 극단적인 예시에요. 다들 조금씩 공감이 갈 거에요. 과제를 하는데 마지막에 제출해야 하..
20170126 백준 1260번 DFS & BFS 기본적인 DFS BFS문제.중요 한 것은 DFS BFS 함수를 구현하는것 입력시 주의할점 1) 간선은 양방향2) 방문할 수 있는 정점이 여러점인경우 정점번호가 작은것 부터 탐색 함수 구현하기 위해서는 : 간선의 개수(M), 정점의 개수(N), 탐색 시작할 노드(V), 노드 탐색의 유무 체크 배열(bool type), 노드끼리 연결성 보여주는 배열(vector) , BFS함수에서 사용되는 queue 가 대표적으로 필요하다. 모든 함수의 선언 이전에 필요한 변수, 배열을 선언하고, 헤더를 추가하자 #include #include --> memset( ) 를 쓰기 위함#include --> sort( )#include --> vector adj[1001]#in..
20170113 개발일지 (2) 백준 2947 나무조각 5554 심부름 가는 길 1568 새 --> 로직 다 풀어놓고 while문안에 if문 안넣어서 결과값을 출력을 못하고 있었음. 9094 수학적 호기심 4766 일반 화학 실험 10811 바구니 뒤집기 10569 다면체 5176 대회자리 전체적으로 감 잡기 위해 기본문제 풀기로 함. 저번 주의점 의식해서 간단한 문제라도 일단 머릿속에서 로직을 구상하고 구체적으로 손으로 노트에 코딩해봄. (수도코드X )그 결과 헛 짓하는 일은 줄어듬. 이게 쉬운 난이도 여서 그게 쉬웠을 지 몰라도 난이도가 높아지는 문제들에 따라 메모리 와 시간을 계산 및 의식하는 노력을 하자. scanf() printf() 에 익숙해지기 / 헤더 추가 제대로 하기 결론: 다음주에 출제..
개발일지 001 2017.01.06 백준 2355 시그마 처음에 공식을 시그마공식으로 접근하지 못하고 i j cnt이용해서 구하려고 함. n회차에 걸쳐 시그마 공식 떠올리고 (k=1, j 까지 시그마 k) - (k=1, i-1까지 시그마 k)를 공식을 코드로 짬. 여기서 실수 1) i 와 j 간 크기 비교를 안한 상태로(문제에서 조건이 주어지지 않음) i가 j보다 클 경우를 생각하지 않음 두 수끼리 곱하며 범위 초과를 고려해서 long long으로 type 변경함.(i j ans)마지막에 i == j 일경우때문에 헛짓거리 한번더 하고 맞춤. 1. 로직을 먼저 짠다음에 코드를 작성하는 버릇을 들여야할 것 같다. 문제를 읽고 무턱대고 코딩부터 시작하는게 생각보다 습관화되어있음.이게 단순 구현에서도 구멍하나 ..