분류 전체보기1074 [알고리즘] 백트랙킹 (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. [파이썬] 웹에서 뉴스 데이터 가져오기 (웹크롤링) 웹크롤링은 웹페이지의 내용을 가져와 자신이 원하는 데이터를 만드는 것입니다. 주식 데이터 또는 뉴스 등 정보를 사용할 수 있습니다. 그러나 html 로 만들어진 웹페이지에서 특성 단어 등을 찾아 원하는 데이터를 만드는데 시간이 지나면 해당 웹페이지가 변경되면 데이터를 가죠오지 못 할 수도 있습니다. 또는 해당 웹의 회사에서 불법 접쪽으로 파악해 한번에 많은 페이지에 접근하지 못하게 할 수도 있습니다. 그래서 크롤링 코드를 찾아서 사용해보면 안 되는 경우가 많이 있습니다. 지속적으로 코드를 업그래드 해주어야 합니다. 기본적인 크롤링 코드 입니다. 결과를 보면 많은 해당 웹페이지의 html을 볼 수 있습니다. 많은 내용 중에 자신이 원하는 내용을 찾아야 합니다. from urllib.request impor.. 2022. 8. 12. 이전 1 ··· 98 99 100 101 102 103 104 ··· 108 다음 728x90 반응형