전체 글
-
한컴오피스 한글 인덱스가 범위를 벗어났습니다~의 오류 해결방법기타문서 2019. 10. 13. 17:41
윈도우 10 기준입니다. 이 오류는 .NET 업데이트 이후 간헐적으로 발생하는 것 같습니다. 오류메세지 전체는 다음과 같습니다. 프로그램 실행 중 오류가 발생했습니다. 프로그램을 종료할까요? 인덱스가 범위를 벗어났습니다. 인덱스는 음수가 아니어야 하며 컬렉션의 크기보다 작아야 합니다. 매개 변수 이름: index 해결 방법은 다음과 같습니다. 파일탐색기의 주소창에 다음과 같이 입력하고 HNC폴더를 지운 다음 저장을 시도하는 것입니다. %homepath%\AppData\Roaming 으로 이동 후 HNC 폴더 삭제 어차피 저장 후에 HNC 폴더는 다시 생기기 때문에 부담없이 지우셔도 됩니다. 참고1 : %homepath%는 말그대로 자신의 홈 디렉토리의 경로입니다. 저같은 경우는 C:\Users\내컴퓨터이..
-
[소마 강의] git 심화Software Maestro/소마 강의 2019. 7. 12. 16:02
1. commit 삭제하기 git revert 작업내역 하나 없었던 일로 한다. 대신 이 작업도 새로 커밋에 추가된다. git reset 특정 작업내역상태로 시간을 되돌린다. --hard reset은 완전 깨끗하게 --soft reset은 수정할 수 있도록 여지를 남겨둔다. revert는 이 작업을 왜 취소했는지에 대한 이유를 커밋으로 남기므로 histroy 자체를 바꾸지는 않는다. 매우 안전한 방법. 협업하고 있을 때는 revert. reset은 매우 불안정한 방법. 많이 쓰지는 않음. 협업할때 reset은 매우매우 조심하자. 주소 : ________________ 여기에 원래 있던 프로젝트를 fork해오자. fork 후 자신의 로컬로 clone하자. git clone 하면 된다. git_class를 ..
-
[소마 강의] git 초급Software Maestro/소마 강의 2019. 7. 9. 18:03
[1] 깃이 뭔가요? 버전 관리 시스템 ( vcs ) : 누가 언제 무엇을 어떻게 수정했는지 확인 가능. 분산형 버전 관리 시스템 = 깃. snapshot : 현재 상태 그대로 저장. 깃의 핵심. delta값을 저장하는게 아닌 전체파일 그대로 저장. (snapshot). commit남기는 그 순간에 snapshot을 찍음. [2] 사용 : mac기준. 자. 깃을 사용하려면 깃을 깔아야겠지? http://git-scm.com/downloads Git - Downloads Downloads Mac OS X Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes ..
-
다익스트라(dijkstra)SCCC - Soongsil Computing Contest Club/2019 Spring-Study 2019. 6. 3. 01:25
1. 다익스트라 특정 하나의 노드에서 각 노드까지의 최단길이를 모두 구하는 알고리즘. 제일 작은 노드 탐색 갈 수 있는 노드들 값 갱신 이거 1,2 무한반복 : 다익스트라. 쉽죠? 일종의 그리디라고 할 수 있는 다익스트라. 그리디의 모순에 의한 증명으로 증명 할 수 있다. >>위의 알고리즘을 사용해서 최단경로를 만들었을 때 다른 노드를 경유하여 들어오는 경로가 최단이지 않으면 증명 완료. 대표적인 다익스트라 문제 https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V..
-
STL Vector, 그래프, 트리 (20190517)SCCC - Soongsil Computing Contest Club/2019 Spring-Study 2019. 5. 17. 20:49
1. vector vector name; array와 같다. (1) push_back(value) : 벡터에 value를 맨 뒤에 집어넣는다. (2) pop_back() : 맨 뒤의 값을 뺀다. (3) size() : 벡터의 사이즈 리턴. 2. 그래프 정점과 간선의 집합. 정점(node, vertex) 간선(edge, arc) 표현 방법에는 어떤게 있을까? (1) 인접행렬 이차원배열로 정점과 정점의 연결관계를 나타냄. arr[i][i]는 0이고 , 양방향그래프에선 arr[i][j]와 arr[j][i]의 값은 같다. 메모리 낭비가 너무 심해서 10^6만 되어도 터진다. (2) 인접리스트 각 정점에서 연결된 정점만 표현해주는 리스트. 벡터를 사용하면 완젼 편리하다. vector graph[5]이렇게 하면 굿..
-
STL Priority_queue(heap), (20190503)SCCC - Soongsil Computing Contest Club/2019 Spring-Study 2019. 5. 3. 20:31
1. Heap (=priority queue) 값이 들어가면 정렬된 형태로 저장하는 구조. 넣을때 logN, 뺄 때 logN의 시간이 걸린다. priority_queue pq; pq.push() pq.pop() pq.top() => 특이하게 top을 쓴다 작은거부터 뽑고싶을 때는 priority_queue pq; 혹은 priority_queue pq; 그대로 해놓고 3을 넣지말고 -3을 넣고 뺄때 - 붙여주면 됨 ㅋㅋㅋㅋㅋ 신박하다 문제 : https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수..
-
1074번 : Z알고리즘/백준(acmicpc.net) 문제풀이 2018. 7. 11. 22:21
처음엔 재귀함수로 짜다가 시간초과가 나서 수학적으로 접근해 보았습니다. 쪼개는 방법은 단순합니다. 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 순으로 쪼개죠. 쪼개는 기준도 단순합니다. 처음 시작할 때 2^(N-1)의 길이로 자르고 자르는 것을 반복할 때마다 1/2씩 줄어듭니다. N=2일 때, (3, 1) 자리 숫자를 알고 싶다면 1) 범위(쪼개는 길이)가 2일 때 : x=3/2=1, y=1/2=0 이므로 왼쪽 아래자리, x와 y에 각각 2로 나눈 나머지를 저장하고 범위를 2로 나눕니다. 2) 범위가 1일 때 : x=1/1=1, y=1/1=1 이므로 오른쪽 아래자리. 이때 1)에선 범위의 제곱 * 2만큼 res에 더해줍니다.(0 + 2^2 * 2 = 8) 2)에선 범위의 제곱 * 3만큼 res에 더해..
-
11729번 : 하노이 탑 이동 순서알고리즘/백준(acmicpc.net) 문제풀이 2018. 6. 18. 10:14
이동 횟수는 dp로, 이동 순서는 재귀적으로 짜보았습니다.우선 이동 횟수부터.원판이 1개 있을 때의 이동 횟수는 1원판이 2개 있을 때의 이동 횟수는 3원판이 3개 있을 때의 이동 횟수는 7원판이 4개 있을 때의 이동 횟수는 15... 이것은 원판 N개가 1번에서 3번으로 이동할 때1) N-1개가 1번에서 2번으로 이동 / 이동 횟수 : dp[N-1]2) 가장 아래에 있던 원판이 1번에서 3번으로 이동 / 이동 횟수 : 13) 2번에 옮긴 모든 원판을 다시 2번에서 3번으로 이동 / 이동 횟수 : dp[N-1]이런 순서로 됩니다.이동 횟수를 모두 세어보면 결국 2*dp[n-1]+1번이 됩니다. (사실 dp를 안세워도 이동 횟수는 2의 n제곱-1번과 같습니다) 이제 이동 순서를 구해보겠습니다.원판을 이동시..
-
1436번 : 영화감독 숌알고리즘/백준(acmicpc.net) 문제풀이 2018. 6. 18. 09:10
이 문제는 666이 들어가면서 N번째로 작은 수를 찾는 문제입니다.즉 666, 1666, 2666, 3666, 4666, 5666, 6660, 6661, ... 이런식으로 된다는 것이죠.저는 666부터 조건을 만족할 때마다 N을 빼주면서 마침내 0이 되면 반복문을 탈출하도록 설정 했습니다. (브루트 포스) 수를 찾을 때마다 재귀를 돌려가면서 6이 연속되있는지 판단하기 보다는 아예 배열 안에 수를 한자리씩 넣어놓고 인덱스로 비교하는게 편할 것 같았습니다. 그래서 arr[10]을 설정하고 arr[0]은 1의자리 수, arr[0]은 10의자리 수 ,,, 이런식으로 세웠습니다. up()은 일의자리 수에 +1을 해주는 함수입니다. N이 0이 되었을 때는 가장 큰 자리수부터 차례대로 출력해야 합니다. 이때 처음부터..