알고리즘

    프로그래머스 - Lv1. 정수 제곱근 판별

    문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. def solution(n): answer = 0 x = n**(.5) if n % x == 0: answer = (x+1)**2 else : answer = -1 return answer 문제 자체는 쉽게 풀었다. 제곱근인 숫자는 제곱근이 정수로 나오기 때문에 나누어 떨어지고 제곱근이 없는 숫자는 x가 소수점 숫자가 나오기 때문에 나누어 떨어지지 않는다. 이걸 이용해서 쉽게 풀었다. 다른 사람 풀이에서 and 연산자를 이용한 풀이를 바로 이해가 되지 않아 공부하는 겸 찾아 보았..

    진수 변환

    진수 변환

    16 진수 hex() : 16 진수로 바꿔주는 함수 hex(10) # 0xa hex(255)# 0xff 16진수를 10진수로 변환하는 방법 n = a x = int(n,16) # 입력된 str을 16진수로 변환해 변수에 저장 print(x) # 10이 출력 10진수를 16진수로 출력 (포맷팅) n = 10 print('%x' % n) # 16진수의 10에 해당하는 a가 출력 print('%X' % n) # 16진수의 10에 해당하는 A가 출력 16진수로 변환하는 방법은 '%x'를 붙이고 %를 붙이고 정수를 입력하면 된다. x가 대문자면 16진수 대문자 형태로 출력 소문자면 소문자 형태로 출력 된다. 8진수 oct() : 8진수로 바꿔주는 함수 oct(10) # 0o12 oct(15) # 0o17 10진수..

    시간 복잡도 (Big-O)

    시간 복잡도 (Big-O)

    1. 점근적 실행 시간 = 시간 복잡도 점근적 실행 시간은 시간복잡도라 할 수 있고 시간복잡도의 정의는 어떤 알고리즘을 수행하는 데 걸리는 시간을 설명하는 계산 복잡도를 이야기 한다. 계산 복잡도를 표기하는 대표적인 방법이 바로 빅-오 이다. 2. 빅오는 점근 표기법(asymptotic notation)의 한 종류 점근 표기법은 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현하는 수론과 해석학의 방법이다. 알고리즘의 복잡도를 단순화할 때나 무한급수의 뒷부분을 간소화할 때 쓰인다. 점근 표기법에는 빅-오, 빅-세타, 빅-오메가, 리틀-오, 리틀-오메가 가 있다. 1. 빅-오(big-o) : 상한을 의미 한다. 2. 빅-오메가 : 하한을 의미한다. 3. 빅-세타 : 평균을 의미한다. (출처 : 위키피디아..