colon":"을 이용해서 list를 자를 수 있다. list = [1,2,3][1:] print(list) # [2,3] 1번째 element부터 끝까지 라는 뜻이 된다. list는 0부터 시작하므로, 1을 제외한 나머지로 이루어진 리스트가 된다. e = [1, 2, 3, 4, 5, 6, 7, 8, 9] f = e[:1] g = e[1:] h = e[2:5] k = e[-3:] print(f) # [1] print(g) # [2, 3, 4, 5, 6, 7, 8, 9] print(h) # [3,4,5] print(k) # [7,8,9] 왼쪽 범위를 지정하지 않으면 0부터 시작한다. 오른쪽 범위를 지정하지 않으면 끝까지 간다. 왼쪽 오른쪽 범위를 모두 지정하면, 왼쪽 element부터 오른쪽 element..
lists = [['A', 'B', 'C'], ['1', '2', '3', '4', '5'], ['x', 'y'], ['apple', 'banana', 'grape']] listsLen = len(lists) print("len(lists):", listsLen) # len(lists):4 lenListOfLists = [] for x in range(len(lists)): lenListsOfLists.append(len(lists[x])) print("lengthList of Lists:", lenListsOfLists) # lengthList of Lists: [3, 5, 2, 3] print(lists[3][2]) # grape for x in range(len(lists)): for y in ra..
피자 가게에 토핑이 아래와 같이 있다. 페퍼로니, 올리브, 베이컨, 피망, 새우, 파인애플.... etc 다만, 어떤 손님은 피자 토핑을 오직 한 가지만 올리길 원한다. 이 때 고른 토핑의 종류가 한가지인 지 확인하는 가장 빠른 함수를 만들라. def pizza(top1, top2, top3, ..., topN): return (top1+top2+top3+...+topN == 1) input param이 boolean 일 때만 유효하다. 대체 왜 이걸 몰라서 온갖 and, or, xor 경우를 조합 해냈을까?
xor은 ^으로 표현한다. A^B^C는 개념적으로 xor를 잘 나타내지만, 프로그래밍 언어에서는 그렇지 않다. 프로그래밍 언어는 A^B^C를 마치 (A^B)^C 라고 여긴다. 항상 두 가지로 연산을 진행하고 남은 연산을 왼쪽에서 오른쪽 순서로 진행 할 뿐이다. 실제 3항을 동시에 고려하는 xor를 프로그래밍 언어에서 구현하려면 A^B^C가 아니라 별도의 표현이 필요하다. 출처: stackoverflow.com/questions/52108901/xor-operation-on-three-values 3항을 가진 xor 연산의 경우 (A xor B) or (B xor C) n개의 항을 가진 xor 연산의 경우 (A xor B) or (B xor C) ... or (n xor n+1)
Python의 논리 연산자는 C언어와 비슷하지만 차이점이 있다. python은 "!"를 not으로 인식하지 않는다. Python은 not을 "not"이라는 단어로 사용한다. condition1 = TRUE condition2 = FALSE condition3 = not condition1 print(condition1) # TRUE print(condition2) # FALSE print(not condition1) # FALSE print(condition3) # FALSE print(condition1 and condtion2) # FALSE c.f. ~(tilde) operator는 bit연산에서 각 digit을 0과 1을 뒤집은 결과 값을 의미한다. number = 2 라면, number는 비트로..
출처: www.python.org/dev/peps/pep-0257/ PEP 257 -- Docstring Conventions The official home of the Python Programming Language www.python.org What is a Docstring? Docstring 이란 무엇인가? A docstring is a string literal that occurs as the first statement in a module, function, class, or method definition. Such a docstring becomes the __doc__ special attribute of that object. Docstring은 문자열 리터럴String Lite..
극한을 공부하는 도중에 계속 맴도는 의문점이 있어, 진도가 나가질 않는다. 왜 극한이라는 게 필요할까? 도무지 모르겠다. 예를 들자면 위의 함수는 x=6에서만 다른 값을 지닌다. 1. 대체 왜 이런 비연속적인 함수가 필요한 것인지도 모르겠고.. 2. f(6) = -5 라는 걸 아는데 왜 별도로 lim x->5를 구해야 하는 지도 모르겠다. lim 라는 개념이 왜 필요한걸까? 한글로는 극한이 필요한 이유로 검색해도 고등수학 풀이법만 나와 있어서 궁금함을 해결 하는데는 도움이 안되었다. 다만 최초로 극한을 도입한 배경을 안다면, 극한이 필요한 이유를 알지 않을까 해서 검색하다가 아래 글을 찾았다. source: www.quora.com/Who-invented-limits-in-maths Who invente..
보호되어 있는 글입니다.
어떤 집합의 자기 자신과 공집합을 포함한 모든 부분 집합의 합을 멱 집합 power set이라고 한다. 부분 집합을 구하는 법 1. 완전탐색 그러나 완전탐색은 탐색 시간이 너무 길기 때문에 대부분의 문제에 적용할 수 없다.만약 집합의 원소 개수가 N개라면, 부분 집합의 개수는 2^N개이다.그러므로 문제의 경우 최대 부분 집합의 개수는 2^40개이다. 1-2. 비트 연산 완전 탐색의 일종으로 비트 연산을 재귀함수로 사용할 수도 있다.원소의 개수만큼 비트를 나열하고 해당 원소를 선택한 경우 1, 선택하지 않은 경우를 0 이라고 하여 비트로 부분 집합을 구할 수 있다. int A[] ={1,2,3,4,5} 라면int bits[5] = {0,} 으로 선언하여 초기화 할 수 있다.