본문 바로가기

반응형

old/Programming

(103)
파이썬의 조건문과 루프문-if, for, while 파이썬의 조건문 조건문(if 문) 조건이 하나일때 Keyword: if if [조건] : [빈칸]실행할 내용 조건이 여러개 일때 Keyword: elif if없이 단독으로 사용 불가능. if [조건] : [빈칸]실행할 내용 elif [추가적인 조건] : [빈칸]실행할 내용 elif [추가적인 조건] : [빈칸]실행할 내용 조건을 제외한 상황일때 Keyword: else if없이 단독으로 사용 불가능. if [조건] : [빈칸]실행할 내용 else : [빈칸]실행할 내용 if 문 예제 a = 3 if a > 5: print("a is bigger than 5") elif a > 0: print("a is bigger than 0 but smaller than 5") else: print("a is nega..
파이썬의 자료구조-셋set 셋 set 정의 파이썬의 자료구조 중 하나 데이터의 집합을 만든다 파이썬 자료구조의 종류 리스트 List: [ ] 튜플 Tuple: ( ) 딕션어리 Dictionary: { key : value } 셋 set: { } 선언 "{" 와 "}"를 사용해서 선언함. setA={1,3,4,"test"} # {1, 'test', 3, 4} setB={2,4,"test",5,6} # {2, 'test', 4, 5, 6} 특징 중복값 넣는건 불가 순서를 신경쓰지 않음. 집합연산 (합집합, 교집합, 차집합, 대칭차집합)이 가능함 집합연산 합집합 universal set 키워드: "|", "union()" 합집합 예제 setA={1,3,4,"test"} # {1, 'test', 3, 4} setB={2,4,"test",..
해쉬 알고리즘hash algorithm-해쉬충돌Hash Crash Definition 해쉬함수를 사용할때 일어나는 문제중 하나 해쉬의입력값이 다름에도 불구하고, 출력값이 똑같이 나오는 경우를 얘기한다. 특징 해쉬충돌이 적게 일어날수록 좋은 해쉬 함수 완전히 아예 안일어나는 건 굉장히 어려움 매우 제한적으로 사용할떄만 해쉬충돌이 아예 안일어남. Example [input]->[output] 1번 해쉬 알고리즘 A->03 B->02 C->03 위와같은경우, A와 C의 출력값이 같으므로 해쉬 충돌이 일어남. 문제 해결법 대부분의 해쉬 알고리즘은 해쉬충돌이 일어날경우 다음 출력값으로 이동하며, 사용하지 않은 출력값을 찾음. 위의 예제의 경우, 03이 나왔는데 해쉬충돌이 일어나므로, 04를 출력하여 이곳에 C를 저장함.
해쉬 알고리즘hash algorithm-균일성uniformity Definition 해쉬함수를 평가할때 쓰이는 속성. 해쉬 출력값이 모두 같은 확율로 나올수록 좋은 해쉬 알고리즘이므로, 이를 균일성이 높다라고 표현함 Example [input]->[output] 1번 해쉬 알고리즘 A->03 B->02 C->03 2번 해쉬 알고리즘 A->01 B->02 C->03 예제 설명 위와 같은 해쉬값이 나온다면, 2번 알고리즘의 균일성이 1번 알고리즘보다 높다라고 표현할수있음. 결론 균일성이 높을수록, 해쉬 충돌이 일어나지 않는다는 뜻이므로, O(1) 의 time complexity가 나올 가능성이 높아짐. 추가 설명 균일성이 아주 높아서 해쉬충돌이 일어나지 않는 해쉬 알고리즘이 가능한가? 결론적으로 가능하지만, 아주 제한적으로만 가능함 균일성 측정 카이제곱 검정(chi-sq..
해쉬 알고리즘hash algorithm 정의 임의의 크기를 가진 값을 고정크기의 값에 대응시키는 함수 특징 입력값이 같으면 출력값도 같아야함. 사용용도 암호화 해쉬 알고리즘을 이용한 데이터 스트럭쳐인 해쉬맵과 해쉬 테이블이 존재함. 길이가 긴 데이터 둘을 빨리 비교하기 위해 사용이 가능함. 단 다른 경우만 빨리 비교 가능 누출되면 곤란한 데이터의 원본을 저장하지 않기 위해 분류 암호학적 해쉬 함수cryptographic hash function : 암호화를 위해 사용 되는 해쉬함수 해쉬함수hash function : 해쉬함수의 성질을 이용하여 목적이 다르게 사용되는 해쉬함수 해쉬테이블은 해쉬알고리즘을 사용하여 데이터를 빠르게 저장하기 위해 만들어짐 해쉬함수의 성질 효율성efficiency 균일성uniformity 역상 저항성pre-image ..
파이썬의 자료구조-딕션어리Dictionary 딕션어리 Dictionary 정의 파이썬의 자료구조 중 하나 key와 value 값을 가지고 key값을 이용해서 value값을 찾을수 있다. 다른언어의 Hashmap과 같음 파이썬 자료구조의 종류 리스트 List 튜플 Tuple 딕션어리 Dictionary 셋 set 선언 "{" 와 "}"를 사용해서 선언함. value에 List도 가능. 단 key 값은 스트링 혹은 int 타입이여야함. List는 안됨 (TypeError: unhashable type: 'list') dictionary={1:"value1","key2":"value2","key3":"value3"} value 값 찾는법. List처럼 인덱스를 넣기 get() 메서드를 사용 인덱스와 get메서드의 차이점 만약에 없는 key값을 넣었을 경..
자바의 enum class란 개념 이넘enum은 프로그램이 실행되는 동안 고정되어 있는 값을 정의하기 위해 사용하는 클래스 이를 다른말로 상수Constant를 정의한다 라고 합니다. 생겨난 이유 프로그래밍에서는 어떤상황에서든 반드시 필요한 값이 종종 필요할때가 있습니다. 이 값이 변해서는 안되지요. 이런경우, 보통 상수를 정의해서 사용합니다. 역사 이는 C언어부터 사용되어온 기술중 하나인 #define 전처리기와 const 키워드 입니다. C 코드 예제 #include #define MALE 1 int main() { const int FEMALE = 2; int input = 2; if(input==MALE){ printf("I am male"); }else{ printf("I am Female"); } return 0; } 결과..
Java로 구현하는 피보나치 수열과 피보나치 숫자 판별 방법 정의 특정 패턴을 가진 숫자 리스트. 첫번째와 두번쨰 숫자는 언제나 0과 1로 시작하며, 세번째 숫자는 첫번째와 두번째의 합이다. 피보나치 수열의 예제 $0,1,1,2,3,5,8,13,21,34,55...$ 점화식Recurrence Relation $F_0=0$ $F_1=1$ $F_n=F_{n-1}+F_{n-2}$ 예제 인덱스 피보나치 숫자 계산식 0 0 0 1 1 1 2 1 0+1 3 2 1+1 4 3 1+2 5 5 2+3 6 8 3+5 7 13 5+8 8 21 8+13 9 34 13+21 10 55 21+34 11 89 34+55 12 144 55+89 13 233 89+144 14 377 144+233 15 610 233+377 16 987 377+610 특정 인덱스의 피보나치 숫자를 찾는법 수학 ..

반응형