전체 글
[python](알고리즘) mergeSort 병합정렬(합병정렬) 구현
Merge sort(합병정렬) 구현 코드 def merge_sort(list): if len(list)
양자생태계와 양자기술, 한국 전망
양자기술 "100만년 걸리는 1024비트 암호 해독을 10시간 만에 끝내고, 전력 소모량은 지금의 600분의 1로 줄일 수 있다." (양자컴퓨터). "양자 자기공명영상(MRI)으로 지금보다 100배 작은 0.05㎜ 이하 암세포를 식별하고, 양자 이미징 센서로 45㎞ 이상 원거리까지 탐지한다." (양자 센서 초정밀 계측). "도청. 감청시 파괴되는 양자 암호키를 만들어 해저 광케이블, 위성통신 등의 불법 도감청을 막고, 해킹을 원천 차단한다." (양자암호통신) 양자기술의 정의 더 이상 작게 나눌 수 없는 에너지의 최소단위를 가지는 입자, 즉 에너지 전하 각 운동량을 비롯한 물리적 성질을 나타내는 불연속적인 최소단위의 물리량 모든 물리량을 쪼개고 쪼개면 양자가 된다 양자기술은 기존 ICT 기술의 획기적인 변..
가상 인플루언서의 전망, 이마(Imma)
가상 인플루언서의 전망, 이마(Imma) 가상 인플루언서란 사람의 모습과 유사한 컴퓨터로 만들어진 캐릭터로서, 인공지능 기술과 그래픽 기술의 발전으로 현실의 실제 사람과 유사한 수준으로 발전시킨 가상의 인물이다. 여러 가상 인플루언서를 찾아보던 중, 나의 눈에 이마(imma)가 들어왔고, 그외의 다른 가상 인플루언서는 눈에 잘 들어오지 않았다. 위의 사진은 이마(imma)의 인스타그램의 게시물 중 하나이다. 개인적으로 내가 가장 선호하는 게시물이다. 이마(imma) 는 20년 8월 이케아가 일본 도쿄에 매장을 내면서 모델로 발탁되어 화제가 되었다. 오랫동안 가상 인플루언서로 활동했고 잡지 등에 모델로 등장하기도 했지만 이케아와 같은 대기업의 모델로 선택되면서 가상 인플루언서 자체의 대한 관심 또한 높아졌..
알고리즘에 대하여 (pseudo-code)
알고리즘 문제 해결 과정을 체계적으로 기술한 것 문제의 요구 조건 입력과 출력으로 명시할 수 있다. 유래 알 콰리즈미(al-Khwarizmi) ; 페르시아 과학자, 근대 수학의 아버지 ↓ Algoritmi : 알 콰리즈미를 라틴화한 단어 ↓ Algoritm Pseudo-language (의사코드) 알고리즘 기술을 위한 표준 언어 pseudo-code : pseudo-language 로 작성한 코드 프로그래밍 언어보다 융통성이 있음 모호함이 적고, 명령어를 정의하면 됨 엄격한 문법에 따르지 않아도 무방 if 문 if 조건 then else while 문 while 조건 for 문 for i = 1 to n for i = n downto 1 1 ~ n 까지 반복 알고리즘의 평가 기준 정확성 수행시간 사용 메..
프로그래밍 언어 순위 (TIOBE index) , 파이썬의 전망
프로그래밍 언어 순위 (TIOBE index) 오랫동안 프로그래밍 언어의 인기 순위에서 1위를 차지하고 있던 Java 가 최근 순위가 3위로 떨어졌다. 출처: https://www.tiobe.com/tiobe-index/ 이러한 순위 결과를 산정한 TIOBE index 에서는 현재 사용하고 있는 프로그래밍 언어를 이용하는 엔지니어 수와 해당 프로그래밍 언어 관련 강좌 및 홈페이지 수, 그리고 Google, Bing 등의 검색 플랫폼에서 그 언어가 검색된 횟수의 기준으로 순위를 결정한다. TIOBE index 프로그래밍 언어 평가 기준 해당 프로그래밍 언어를 이용하는 엔지니어의 수: 과거에 프로그래밍 언어를 배웠던 엔지니어들도 포함되기 때문에 이 수치는 프로그래밍 언어의 과거부터 현재까지의 인기를 간접적으..
[python] factorial 함수, 재귀함수 구현
factorial 팩토리얼 함수 구현 팩토리얼 함수의 재귀함수버전 def factorial(num): #팩토리얼 함수 factor = 1 for i in range(1,num+1): factor *= i return factor def factorialRecursion(num): #팩토리얼 재귀함수 if num == 1: return 1 return num * factorialRecursion(num - 1) 실행 print(factorial(5)) print(factorialRecursion(5)) 결과 120 120
[python] (알고리즘) binarySearch (이진탐색) 구현
binarySearch (이진탐색) 구현 코드 #이진탐색 data = [2, 11, 19, 27, 30, 31, 45, 121] n = int(input('검색할 데이터를 입력하세요: ')) l = 0 #검색할 데이터 리스트의 첫번째 인덱스 h = len(data)-1 #검색할 데이터 리스트의 마지막 인덱스 count = 0 #검색 비교 횟수 isFlag = False #데이터 검색의 성공 여부 while(l data[m]: l = m + 1 elif n < data[m]: h = m - 1 #count 위치 유의 count += 1 # 비교횟수를 증가 print("{} 번 비교했습니다".format(count)) if isFlag: print("검색 완료!, 입력된 데이터 {}의 인덱스는..
[python](자료구조) Queue class 구현
Queue 클래스 구현 중복된 값 enqueue 불가능 Stack의 size 값이 defuat 일 경우 5로 설정 overflow / underflow 주의 생성자 queue 리스트 생성 size 초기화 rear, front 초기화 enqueue() dequeue() view() 메소드 구현 class Queue: def __init__(self, size = 5): self.queue = [] #큐를 리스트로 구현 self.size = size #큐의 사이즈 self.front = 0 #큐의 앞쪽 포인터 self.rear = 0 #큐의 뒤쪽 포인터 def enqueue(self, data): if data in self.queue: #중복된 값 방지 print("{} 값은 이미 큐에 있는 데이터입니다...
[python](자료구조) stack class 구현
Stack 클래스 구현 중복된 값 push 불가능 Stack의 size 값이 default 일 경우 5로 설정 overflow / underflow 주의 생성자 stack 리스트 생성 size 초기화 top SP(Stack Pointer) 초기화 push() pop() view() 메소드 구현 class Stack: def __init__(self, size = 5): self.stack = [] #stack 리스트 생성 self.size = size #stack 의사이즈 self.top = 0 #SP(Stack Pointer) stack에 저장되는 데이터의 개수 def push(self,data): if data in self.stack: print("{} 값은 중복된 데이터입니다.".format(da..
Java Scanner 입력 next() nextLine() nextInt() nextDouble() next().charAt(0)
Java 입력 Scanner Java 에서 입력 받는 법 Scanner 사용 java.util 패키지에서 Scanner 클래스 호출 import java.util.Scanner; Scanner의 객체 생성 Scanner sc = new Scanner(System.in); Scanner close / nextLine() 사용시 필수 sc.close(); next(), nextLine() 메소드 next() 문자열을 입력받는 메소드 공백 이전까지 단어만 입력가능 nextLine() 문자열 전체를 입력받는 메소드 마지막 Enter 는 입력받지 않으므로, 프로그램 내부에 \n 이 남아있어, nextLine()을 사용 후, next()를 사용하게 되면, 입력받기도 전에 프로그램이 종료된다. sc.close();로..