본문 바로가기

TIL15

tmux 아나콘다 환경으로 변경하기 한 화면에 터미널을 여러 등분해서 볼 수 있게 해주는 프로그램으로 tmux가 있다. brew를 통해 tmux를 설치하고 실행했는데 콘다 환경은 실행되어 있지만 실제로 파이썬의 경로는 anaconda가 아닌 brew를 통해 실행되고 있었다. 다행히 문제를 해결할 수 있는 방법을 찾았고, 조금 귀찮지만 분할된 터미널마다 아래 명령어를 실행해주면 된다. $ [[ -z $TMUX ]] || conda deactivate; conda activate base 명령어를 실행하고 난 뒤 which python3 파이썬 경로를 확인하는 명령어를 실행하고 파이썬 경로가 아나콘다 환경의 파이썬인지 확인해본다. 명령어 실행 전 명령어 실행 후 도움을 찾은 링크 https://github.com/conda/conda/issu.. 2022. 5. 13.
[12시간 삽질기].. 아나콘다 파이썬 버전 변경 오류 주의점 본문은 삽질기, 주의점 요약은 아래 있습니다. 아파치 플링크를 공부하기 위해 플링크를 다운받고 아나콘다 환경에서 pip를 통해 플링크를 설치하려고 했다. 기존 내 콘다 환경은 python3.9 이다. pip 를 통해 flink를 설치중 numpy 버전이 맞지 않아서 설치가 되지 않는다고 했다. 새벽동안 너무 삽질을 오래해서 기억이 가물가물한데 오류 내용은 요구되는 numpy 버전이 python < 3.7 에 호환된다는 내용이었다. 그래서 처음 나는 콘다 환경의 파이썬 버전만 변경하면 되는줄 알았다. 파이썬 버전을 변경 하려고 했는데 solving environment failed with initial frozen solve. retrying with flexible solve 이 에러문구만 계속해서 나.. 2022. 5. 11.
[Python] List 연산 주의점 알고리즘 문제 풀이 중 거의 18시간 동안 답이 안 나온 문제가 있었다. 아무리 생각해도 오류가 없는데 왜 답이 안되는지 코드 한 줄 한 줄 뜯어보면서 결국엔 알아냈다. 원인은 파이썬 리스트 연산 때문이었다. 아래 두 개의 코드는 결과 출력 값을 보면 똑같다. 하지만 다음 코드를 적용하면 어떤 결과가 나올까? result[2][1] = "A" result_lcph[2][1] = "A" 결과 출력 내가 처음 예상한 결과 값은 result와 result_lcph 둘 모두 오른쪽 결과처럼 나왔어야 했다. 하지만 보다시피 전혀 다른 결과를 낸다. 이러한 원인을 공부하고 블로그에 게시하기 위해 파이썬 docs를 찾아본 결과 정확하게 "이것은 종종 새 파이썬 프로그래머들을 괴롭힙니다"라는 문구가 있다. 리스트에 리.. 2022. 5. 4.
알고리즘 풀이에 대한 고민 알고리즘은 결국 성능과 연관이 있다. 아무리 코드가 짧더라도 for문이 중첩되어 있다면 그 코드는 BIG-O(n^2)가 되어버리는 것처럼 성능을 고민하면서 코드를 작성해야한다. 특히 파이썬의 경우 데이터를 다루는데 특화되어 있어 python module을 잘 활용하는것도 중요하다. 나는 알고리즘 문제풀이 초보지만 최대한 O(n)을 O(1)을 생각하면서 코드를 짠다. 그러다보니 문제 풀이 시간이 길어진다는 문제가 있는데 시간의 문제는 차차 나아질거라고 생각한다 고민의 시작은 시간이 아닌 나의 풀이는 항상 조금 길다는 것인데, 다른 사람의 풀이를 보게 되면 굉장히 짧아서 매번 충격에 압도된다. 오늘 알고리즘 풀이를 한 문제와 풀이는 아래와 같다. 이용자의 ID가 담긴 문자열 배열 id_list, 각 이용자가.. 2022. 4. 9.
[python] decorator 파이썬 데코레이터 이해하기 데코레이터는 함수에서 코드를 바꾸지 않고 추가하거나 수정하고 싶을 때 사용하는 문법이다. 처음 이해하기 조금 난해할 수 있지만 사용 이유, 단순하게 이해할 수 있는 순서 그리고 현실적인 예제 등을 기록하려고 한다. 데코레이터를 사용하는 이유 기존에 만들어진 함수가 다른 곳에서 이미 많이 사용되고 있을 때 (= 함수 코드의 변경이 어려운 경우) 코드를 변경하지 않고, 필요한 내용을 추가하거나 수정하고 싶을 때 사용한다. 위 코드는 a와 b함수에 공통적으로 포함되어 사용되는 code1과 code3이 있다. code1과 code3이 포함된 함수를 별도로 선언하고 사용되면 좋겠다고 느껴질 것이다. 데코레이터는 중복 코드를 재활용하는 과정에 사용한다고 이해할 수 있다. 데코레이터 함수 사용법 이해 데코레이터 사용.. 2022. 1. 22.
[python] in 연산자의 실행시간, 시간 복잡도 BigO in 연산자 파이썬에서 자주 사용되는 in 연산자 예제 ls = [1, 2, 3] if 4 in ls : print("exist") else : print("not exist") >>> "not exist" dc = { 'a' : 1, 'b' : 2, 'c' : 3, } if 'c' in dc.keys() : print("exist") else : print("not exist") for k, v in dc.items(): if k == 'c': print(v) >>> "exist" >>> 3 in 연산자의 Big-O 나는 알고리즘 공부를 하던 중에 in연산자의 bigO가 궁금해졌다. 해시의 문제풀이로 사용되는 dict의 경우 in 연산자가 어떤 속도를 내게 될지 궁금해졌기 때문이다. 그리고 list, .. 2022. 1. 7.