목록개발/Python | Java (4)
비트마스킹(Bitmasking)이란, 컴퓨터 과학에서 비트 연산을 사용하여 특정 비트의 상태를 확인하거나, 변경하는 기법을 말한다. 백준 알고리즘 문제를 풀다가, 다른 사람의 비트마스킹 문제풀이가 멋지다 느껴 공부하게 되었다. 비트마스킹의 장점 - bit 연산이기 때문에, 시간 복잡도에서 유리. (일반적으로 O(1)로 동작) - 다른 자료구조(배열 | 문자열)보다 메모리 사용량이 적음. 비트 연산자 종류 & AND 연산. 비교하는 비트가 둘 다 참일 때 만족한다. a = 6(110), b = 5(101) 일 때, a & b == 4(100) | OR 연산. 비교하는 비트가 둘 중 하나라도 참이면 만족한다. a = 6(110), b = 5(101) 일 때, a | b == 7(111) ^ XOR 연산. 비..
len (길이) exam = [1,2,3] print(len(exam)) # 3 in & not in (보유 여부) exam = [1,2,3] print(1 in exam) # True print('1' in exam) # False print(1 not in exam) # False print('1' not in exam) # True 반복문 & 반복문 역순 exam = [1,2,3] # 정순 for el in exam : print(el) # 1 2 3 # 역순 ::-1 / 뒤에서부터 -1 씩 for el in exam[::-1] : print(el) # 3 2 1 max & min (최댓값 & 최솟값) exam = [1,2,3] print(max(exam)) # 3 print(min(exam)) #..
Python을 공부하게 되면서 알게 된 문법 혹은 메서드 정리한다. 자바스크립트와 같은 기능을 가진 메서드는 소괄호로 표현하였다. """ """ (템플릿 리터럴) exam = """안 녕 """ # 안 # 녕 format() exam = '{} is {}'.format('a', 'b') # 'a is b' slice exam = 'abcdef' exam[:3] # abc [0:3] 이므로 0 ~ 2 exam[3:] # def [3:끝] 이므로 3 ~ 끝 exam[3:5] # de split exam = 'abcdef' exam.split() # ['abcdef'] list(exam) # ['a', 'b', 'c', 'd', 'e', 'f'] count # String.count(target, start,..
오버플로우란? 자바에서의 계산 결과가 최댓값을 넘거나 혹은 최솟값보다 작을 경우, 음수는 양수로, 양수는 음수로 바뀌는 문제가 발생한다. 이는 오버플로우라고 하며, 자료형의 범위를 벗어나는 연산 값이나 값 할당이 일어난 경우 야기되는 현상이라고 볼 수 있다. (마치, 500ml 용량의 컵에 1,000ml의 물을 따랐을 때, 넘쳐흐르는 것(overflow)으로 생각하면 쉽다.) 참고로 메모리가 표현할 수 있는 값보다 적은 값을 저장하는 경우는 언더플로우라고 한다. 간단한 코드로 설명하면 다음과 같다. public class NumberOverflow { public static void main(String[] args) { int maxInt = Integer.MAX_VALUE; System.out.pr..