본문 바로가기

파이썬/파이썬 기초10

1의 보수, 2의 보수, Signed와 Unsigned의 모든 것 Unsigned와 Signed Signedness는 컴퓨터 프로그래밍에서 숫자를 표현하는 데 쓰인다. 데이터 타입과 같은 속성이라고 보면 된다. Signed는 양수와 음수를 표현할 수 있다. Unsigned는 non-negative numbers, 즉 0과 양수를 표현할 수 있다. Unsigned Unsinged는 Sign과 다르게, 가장 왼쪽 bit인 MSB (Most Significant Bit)가 + 또는 - 부호를 표현하지 않는다. 모든 bit가 숫자를 표현하는 데 사용된다. 따라서, 8bit인 경우 범위는 0부터 255를 표현할 수 있다. Signed 우선, Signed에서 맨 앞에 있는 MSB는 + 또는 - 부호를 나타낸다. 1인 경우 -0 또는 음수이며, 0인 경우 +0 또는 양수이다. Si.. 2021. 5. 7.
파이썬 깊은복사/얕은복사 알아보기 파이썬에서 객체 복사하기 파이썬 복사에는 '깊은 복사'와 '얕은 복사'가 존재한다. 알고리즘 문제를 풀다보면 그래프, 리스트 등 여러 객체를 복사하여 원본을 그대로 두되 따로 수정본을 만들어야될 때가 있다. 파이썬에서는 '=' 연산자를 사용하여 복사하기도 하지만 이는 새로운 객체가 아닌 원본 객체의 reference만 공유하는 새로운 변수이다. 아래 내용에서 우린 원본 객체와 같은지 확인하기 위해 'id()'라는 함수를 통해 확인할 것이다. 파이썬의 모든 객체는 각자의 주소를 가지고 있다. 따라서 이 값이 같은지 틀린지 비교하여 같은 객체인지 다른 객체인지 판단할 수 있다. Equal 연산자 사용하여 복사하기 input new=[1,2,3,4,5] old=new new[1]=3 print("new",ne.. 2021. 4. 26.
파이썬 피보나치 수열 구현하기 학습 목표 피보나치 수열에 대한 이해 피보나치 수열 1) 정의 피보나치 수열이란 처음 두 항을 1과 1로 한 후, 그 다음 항부터는 바로 앞의 두 개의 항을 더해 만드는 수열을 말한다. *문제를 살펴보면 처음 두 항은 다른 경우가 꽤 있다. 2) 동작 예시 풀이 - 1 def fibo(x): if x==0: return 1 elif x==1: return 1 else: return fibo(x-1)+fibo(x-2) n=int(input()) print(fibo(n)) 가장 기본적인 식으로, x==0과 x==1일 때 fibo(x)는 1을 처리한다. 이 외는 fibo(x-1)+fibo(x-2) 더한 값을 리턴한다. 매번 fibo(x-1), fibo(x-2) .... 계산이 계속해서 돌게 되므로, 연산이 많.. 2021. 2. 20.
[그래프] 깊이 우선 탐색 (DFS - Depth First Search) 알고리즘 학습 목표 깊이 우선 탐색 (Depth First Search) 개념, 예시, 의의 깊이 우선 탐색 개념 1) 정의 깊이 우선 탐색이란, 트리 구조나 그래프 데이터 구조를 탐색하는 알고리즘이다. 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 깊이 우선 탐색은 스택 구조를 사용한다. 2) 동작 예시 시작 노드에서부터 왼쪽이 우선 선택되었다고 가정하자. (1) 탐색 시작 노드를 스택에 삽입하고 '방문' 처리한다. (2) 방문하지 않은 인접 노드를 스택에 넣고 방문처리 한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. >> 방문할 수 있는 노드는 모두 방문 후, 없으면 돌아간다는 의미이다. (이 때 스택에서 추가되었던 값들이 하나씩 다시 제거된다.) (3) (2)번 과정을 반.. 2021. 2. 12.