본문 바로가기

프로그램939

[알고리즘] 알고리즘 디자인 기법 1. 구현 기법에 의한 분류 1) 재귀 혹은 반복 재귀 알고리즘은 기본 조건이 충족될 때까지 자신을 반복 호출. C, C++에서 일반적으로 사용 반복 알고리즘은 기본적으로 루프 같은 구조로 스택이나 큐 등에 데이터 구조를 사용하여 문제 해결 어떤 문제들은 재귀에 적합하고 다른 문제들은 반복에 적합하다. 모든 재귀 알고리즘은 반복 알고리즘으로 변환 또는 반대로 가능하다. 2) 절차적 또는 선언적 선언형 프로그래밍 언어에서는 무엇을 할 것인지를 정의하는 방식을 이용한다. 절차적 프로그래밍에서는 결과를 얻기 위한 정확한 단계를 명시해야 한다. SQL은 절차적이라기보다 선언적이다. 절차적 언어는 C, PHP, PERL 등 3) 직렬 또는 병렬 또는 분산 컴퓨터가 한 번에 한 명령을 수행한다고 가정하는데, 이를 .. 2022. 8. 15.
[알고리즘] 백트랙킹 (Java) n비트의 모든 문자열을 생성하라. A[0..n-1]는 크기 n인 배열이라고 가정하라. public class nBitGenerator { public static void main(String[] args) { // TODO Auto-generated method stub Integer[] A = {0,1,2,3,4,5}; Binary(4, A); } public static void Binary(int n, Integer[] A) { if(n < 1) System.out.println(A[n]); else { A[n-1] = 0; Binary(n - 1, A); A[n-1] = 1; Binary(n - 1, A); } } } 2022. 8. 15.
[알고리즘] 재귀함수 (예제:하노이 탑-Java) ㅁ 재귀함수 - 자기 자신을 호출하는 함수 - 자기 자신을 호출하여 더 작은 문제를 풀게 하여 문제를 해결하는 방법 - 중요한 것은 종료해야만 한다는 것 ㅁ 재귀 사용 목적 - 배귀는 반복 코드보다 짧고 작성하기 쉽다. - 일반적인 루프는 컴파일될 때 재귀함수로 바뀐다. - 비슷한 하위 작업으로 정리될 수 있는 작업에 특히 유용(예:정렬, 검색, 탐색) ㅁ 메모리 - 재귀 호출시마다 메서드는 복사본(실제는 변수만)이 메모리에 만들어진다 - 메서드가 종료될 때마다 복사본은 메모리에서 삭제된다. - 재귀 방법은 쉬워 보이지만 시각화와 추적에 시간이 걸린다.(코드를 읽기가 어렵다) ㅁ 재귀와 반복 - 일반적으로 재귀 방법은 접근이 어려운 문제를 쉽게 풀 수 있게 해 준다. - 매번 수행하는 재귀 호출에 부가적.. 2022. 8. 15.
[알고리즘] 이진 검색 (Java) 참고 : Beautiful Code / 한빛미디어 이진검색 : 미리 정렬된 수들의 배열에서 대상 원소를 찾는 방법으로 간단하고 효과적인 방법이다. 그러나 까다로운 알고리즘이다. 프로그래머의 10% 정도만이 정확하게 구현했다고 한다. 이전검색이 발표된 것은 1946이었으나 버그 없는 코드는 12년 이상 걸렸다고 한다. 문제는 구현 언어가 고정 정밀도 산술을 채용하고 있으며 주어진 배열이 충분히 큰 상황에서는 문제를 노출한다는 것 Java에서는 ArrayIndexOutOfBoundsException예외가 발생한다. 아래 버그 코드에서 int mid = (low + high) /2; 가 문제. 합이 Integer.MAX_VALUE(Java에서는 2에 31승 - 1) 보다 큰 경우 위넘침에 의해 합이 음수가 됨.. 2022. 8. 15.
[Rust] 윈도우 코드 다음과 같이 Rust로 윈도우를 만드는 코드를 볼 수 있습니다. GitHub - microsoft/windows-rs: Rust for Windows GitHub - microsoft/windows-rs: Rust for Windows Rust for Windows. Contribute to microsoft/windows-rs development by creating an account on GitHub. github.com GitHub - microsoft/windows-rs: Rust for Windows GitHub - microsoft/windows-rs: Rust for Windows Rust for Windows. Contribute to microsoft/windows-rs develop.. 2022. 8. 14.
[Rust] VS Code 사용 첫번째 코드 (Hello, World!) 설치 방법은 아래 SIte에 잘 나와 있습니다. 설치에 특별히 어려움은 없는 것 같습니다. Windows에서 Rust에 대한 개발 환경 설정 | Microsoft Docs Windows에서 Rust에 대한 개발 환경 설정 Windows에서 Rust로 앱을 개발하는 데 관심이 있는 초급자를 위한 개발 환경을 설정합니다. docs.microsoft.com 이에 예제로 나와 있는 첫 번째 코드를 만들어 봅니다. 1) 명령프롬프트 창에서 다음과 같이 합니다. cargo new ex01 2) 프로젝트 열기 : 명령 프로프트에서 2-1) 새로 만들어진 폴더 내로 이동합니다. cd ex01 2-2) VS Code 프로그램을 실행해서 새로 만들어진 프로젝트를 읽습니다. code . VS Code가 실행됩니다. 프로젝트.. 2022. 8. 14.
[H/W] C: 드라이브 SSD 교체하기 C: 드라이브의 SSD가 256 GB 짜리입니다. 많은 프로그램을 설치하다 보니 용량이 넘쳐서 더 이상 설치가 어렵습니다. 프로그램 설치 시, 프로그램 메인은 다른 HDD에 설치하도록 설정하지만 기본은 C: 드라이브에 설치하는 것들이 많습니다. C: 드라이브 정리 등을 하면서 교체를 미루고 있었는데, 때가 되었네요. 용량은 500 GB와 1 TB 중, 고민하다가 1 TB를 선택했습니다. 거의 2배 가격차이 있군요. 삼성 SSD 870 EVO 1TB SATA3 TLC MZ-77E1T0BW (151,000 원, 배송비 무료배송) 500GB짜리는 75,000원~10,000원이네요. 구입해 두었던 HDD CLONE 기기를 사용했습니다. 구입 해두길 잘했네요. 작업 방법 1) 새 SSD를 HDD CLONE기의 원.. 2022. 8. 14.
[H/W] HDD가 70도 열나고 속도저하-HDD복제하기 어느 날 E: 드라이브 사용하는 하드디스크가 속도가 너무 느려졌습니다. 확인해 보니 열도 70도로 나오는군요. HDD(하드디스크)가 동작은 하는 것 같습니다. 지금은 어떻게든 데이터를 읽어오지만 속도도 느리고 언젠가는 죽을 것 같았습니다. 그래서 좀 간단히 HD 복사하는 방법을 찾다가 HDD CLONE 제품을 구입해서 사용했습니다. 나중에 여유있는 HDD나 SSD를 USB를 연결해서 사용할 수도 있습니다. 27,500 원(배송비 : 2,500 원) 사용 방법 1) PC에 있던 HDD를 빼서 HDD CLONE 원본 자리(위 사진에서 뒤 칸)에 끼우고 2) 새로 구입한 HDD는 CLONE 자리(위 사진의 앞 칸)에 끼웁니다. 3) 전원케이블 연결하고, 뒤쪽에 있는 전원 버튼 누릅니다. (HDD 옆의 LED가.. 2022. 8. 14.
[파이썬] 파이썬 코드 Diagram 그리기(schemdraw) 파이썬 코드로 Diagram을 그릴 수 있는 Packge를 찾다가 좋은 것을 찾았습니다. 회로도, Flowchart, Timming 등 상당히 많은 것을 그릴 수 있습니다. schemdraw Schemdraw documentation — SchemDraw 0.15 documentation Schemdraw documentation — SchemDraw 0.15 documentation schemdraw.readthedocs.io 만약 'AttributeError: 'Text' object has no property 'math_fontfamily' 에러가 발생하다면 다음을 참고 바랍니다. [파이썬] matplotlib의 math_fontfamily 에러 (tistory.com) [파이썬] matplotl.. 2022. 8. 13.
[파이썬] matplotlib의 math_fontfamily 에러 다음과 같이 plot에서 math_fontfamily 를 사용하니 에러가 발생합니다. ax.text(1, 7, msg, size=12, math_fontfamily='cm') Math fontfamily — Matplotlib 3.5.3 documentation Math fontfamily — Matplotlib 3.5.3 documentation Note Click here to download the full example code matplotlib.org import matplotlib.pyplot as plt fig, ax = plt.subplots(figsize=(6, 5)) # A simple plot for the background. ax.plot(range(11), color="0.9".. 2022. 8. 13.
728x90
반응형