전체 글

전체 글

    [Python] 파이썬 ord함수, chr함수 차이점

    1. ord() 함수 하나의 "문자"를 인자로 받고 해당 문자에 해당하는 유니코드를 반환하는 함수입니다. 알파벳 소문자 'a'~'z'는 97~122를 유니코드로 가집니다. print(ord('a')) print(ord('z')) 결과) 97 122 print(type(ord('a'))) 결과) ord 함수로 변환된 정수는 타입으로 int형을 가지게 됩니다. print(ord('ㄱ')) print(ord('ㅎ')) 결과) 12593 12622 ord() 함수는 아스키코드를 확장한 유니코드를 지원하므로 한글도 지원합니다. 2. chr() 함수 하나의 '정수'를 인자로 받고 그에 맞는 유니코드 문자를 반환합니다. 범위는 10진번과 16진법 입니다. print(chr(97)) print(chr(122)) pri..

    [Python] Counter 모듈 사용법

    데이터의 개수를 셀때 사용하는 Counter 모듈에 대해 알아보도록 하겠습니다. Counter 모듈은 collections에 있어서 다음 코드를 입력해야 합니다. from collections import Counter Counter 모듈은 dict()의 기능을 그대로 구현해 줍니다. hash처럼이요. 데이터의 개수를 세어 dict()처럼 key와 value로 구분해 주는 most_common() 함수가 있습니다. from collections import Counter print(Counter('SamSung').most_common()) 결과) [('S', 1), ('a', 1), ('m', 1), ('s', 1), ('u', 1), ('n', 1), ('g', 1)] 대문자 먼저 정렬해주고 그 이후..

    [Python] 파이썬 for-else

    보통 else문은 if문과 함께 사용되지만 파이썬에서는 for문과도 함께 사용됩니다. for문이 break문으로 중간에 빠져나오지 않은 경우 else문을 실행하게됩니다. for i in range(1, 4+1): if i == 3: break print(i) else: print("반복문이 정상적으로 종료되었습니다.") 결과) 1 2 if문에 걸려서 break로 탈출했기 때문에 else문이 작동하지 않았습니다. for i in range(1, 4+1): if i == 5: break print(i) else: print("반복문이 정상적으로 종료되었습니다.") 결과) 1 2 3 4 반복문이 정상적으로 종료되었습니다. 반복문 중 i == 5인 경우는 없기 때문에 else문이 실행되었습니다. 기존 방식 중 ..

    [Algorithm] 에라토스테네스의 체, 소수 판정시 제곱근까지 확인하는 이유(python)

    [Algorithm] 에라토스테네스의 체, 소수 판정시 제곱근까지 확인하는 이유(python)

    에라토스테네스의 체 소수를 구할때 많이 사용되는 에라토스테네스의 체를 알아보겠습니다. 소수를 구하는 첫번째 방법으로는 모든 숫자를 1에서부터 원하는 수 n까지 완전 탐색으로 소수를 찾아주는 방법이 있습니다. 가장 확실한 방법이지만 시간이 많이 걸린다는 단점이 있습니다. n까지의 소수를 구하는 코드 : 시간복잡도(O2) def PrimeNumber(n): res = [] for i in range(2, n+1): check = True for j in range(2, i): if i % j == 0: check = False break if check: res.append(i) return res 완전탐색을 사용해서 하나하나 모든 수를 체크해주는 방법입니다. 에라토스테네스의 체는 소수를 구하는데 시간을 단..

    [Algorithm] 유클리드 호제법(최대공약수, 최소공배수)

    [Algorithm] 유클리드 호제법(최대공약수, 최소공배수)

    1. 유클리드 호제법 : 두 수가 서로 상대방 수를 나누어서 원하는 수를 얻는 알고리즘 큰 수들의 최대공약수를 구할때 사용할 수 있습니다. 최소공배수도 응용을 거쳐 구할 수 있습니다. 2개의 자연수 a, b가 있을 때 a를 b로 나눈 나머지를 r이라 할때 a와 b의 최대공약수는 b와 r의 최대공약수와 같습니다. 단 (a > b)이어야 합니다. 과정을 b가 양수일때까지 반복하고 마지막의 a값이 최대공약수가 됩니다. def gcd(a, b): while b > 0: a, b = b, a % b return a 리턴 값 a가 최대공약수 2. 최소공배수 A와 B의 곱을 최대공약수로 나누어주면 최소공배수가 됩니다. 그래서 최소공배수를 구하기 위해선 최대공약수를 구하는 함수를 미리 만들어 놓는것이 좋습니다. A와 ..