본문 바로가기
728x90

전체 글172

AWS S3 보호되어 있는 글 입니다. 2023. 2. 18.
프로그래머스 미로 탈출 미로 탈출 문제 설명 1 x 1 크기의 칸들로 이루어진 직사각형 격자 형태의 미로에서 탈출하려고 합니다. 각 칸은 통로 또는 벽으로 구성되어 있으며, 벽으로 된 칸은 지나갈 수 없고 통로로 된 칸으로만 이동할 수 있습니다. 통로들 중 한 칸에는 미로를 빠져나가는 문이 있는데, 이 문은 레버를 당겨서만 열 수 있습니다. 레버 또한 통로들 중 한 칸에 있습니다. 따라서, 출발 지점에서 먼저 레버가 있는 칸으로 이동하여 레버를 당긴 후 미로를 빠져나가는 문이 있는 칸으로 이동하면 됩니다. 이때 아직 레버를 당기지 않았더라도 출구가 있는 칸을 지나갈 수 있습니다. 미로에서 한 칸을 이동하는데 1초가 걸린다고 할 때, 최대한 빠르게 미로를 빠져나가는데 걸리는 시간을 구하려 합니다. 미로를 나타낸 문자열 배열 ma.. 2023. 2. 18.
[Python] 병렬처리(Multiprocessing)를 통한 연산속도 개선 파이썬 multiprocessing라이브러리의 Pool과 Process를 활용하여 병렬구조로 연산을 처리할 수 있다. 일반적 연산 def work_func(x): print("value %s is in PID : %s" % (x, os.getpid())) time.sleep(1) return x ** 5 def main(): start = int(time.time()) print(list(map(work_func, range(0, 12)))) print("***run time(sec) :", int(time.time()) - start) if __name__ == "__main__": main() # 결과를 보면 1개의 피드(PID : 15848)가 작업을 처리하고, 1초간 멈추라고 했으므로 작업 수행까.. 2023. 2. 18.
[Python] 'is'와 '=='의 차이 is와 ==의 차이 is는 변수가 같은 Object(객체)를 가리키면 True ==는 변수가 같은 Value(값)을 가지면 True ‘is’의 예시 a와 b는 같은 리스트 객체를 가리킨다. a와 b는 같은 객체이기 때문에 True a와 c는 값은 같지만 다른 객체이기 때문에 False a = [1, 2, 3] b = a c = [1, 2, 3] print(a is b) print(a is c) #True #False ’==’의 예시 a와 b는 같은 리스트 객체를 가리킨다. a와 b는 값들을 가진 리스트이기 때문에 True a와 c는 값들을 가진 리스트이기 때문에 True a = [1, 2, 3] b = a c = [1, 2, 3] print(a == b) print(a == c) # True # True 2023. 2. 16.
Python String concat 시간 복잡도 두 문자열을 합치는 것을 string concatenation이라고 한다. 파이썬에서는 이를 + 기호를 이용해 직관적이고 간단하게 할 수 있으며, 이렇게 문자열을 쉽게 다룰 수 있는 것이 파이썬의 강점 중 하나이다. 그러나 자료구조에 대한 면밀한 이해가 없으면 string concatenation을 오용하여 비효율적인 코드를 짜게 될 수 있다. 이러한 사실을 모르고 있었기에 비효율적인 코드를 작성 하고 있었다. 비효율적인 코드 보단 효율적인 코드를 위해서 조사를 하게 되었다. 우선 def solution(s1: str, s2: str) -> str: s = "" for i in range(len(s1)): if s1[i] >= s2[i]: s += s1[i] else: s += s2[i] return s.. 2023. 2. 16.
불변형 자료형과 변형 자료형 파이썬의 자료형에는 불변형(immutable) 자료형과 변형(mutable) 자료형이 있다. 정수, 실수, 문자열, 튜플은 불변형 자료형이다. 리스트, 딕셔너리는 변형 자료형이다. 불변형 자료형은 데이터 값을 바꿀 때 메모리에 저장된 데이터 전체를 모두 없애고 새로 만든다. 변형 자료형은 할당된 메모리를 그냥 놔두고 메모리에 씌여있는 내용(값)만 바꾼다. 예를 들어 x라는 변수에 1이라는 정수를 입력하는 경우를 생각하자. x = 1 위와 같은 코드를 실행하면 이름공간(name space)에 x라는 변수 이름이 생기고 메모리의 특정 위치에 1이라는 값이 씌여진다. 씌여진 메모리 위치(주소)를 알기 위해서는 id 명령을 사용한다. id(x) 이 상태에서 변수 x의 값을 2로 바꾸면 메모리상의 해당 위치의 값.. 2023. 2. 16.
728x90