알고리즘&문제
[알고리즘] 입력 속도 비교 ( Python3, Pypy3) - input() vs sys.stdin.readline()
백준을 풀다보면 의문인 점이 생긴다. 알고리즘에 따라 결과가 나와야하는데, 가끔 똑같은 알고리즘인데 코드 몇 줄 바꾼다고 결과가 달라지는 경우가 있다. 많은 사람들이 고통 받는 "시간초과"가 이에 해당한다. 만약, 시간초과가 뜨신다면 다음과 같은 방식으로 코드를 수정해보세요. 1. Python3 대신 Pypy3로 변경해서 제출하기 처음엔 Pypy3가 Python3과 다른 언어인줄 알았습니다. 뭐 사실 같은 언어는 아니죠... Python에서 돌아가는 대부분의 코드가 pypy에서도 돌아가요. 그리고 속도는 pypy가 훨씬 빠르죠.(백준에서는 빠른게 짱이니까...) 사실 pypy3로 바꿔서 내면 시간초과 문제를 해결하는데 큰 도움이 됩니다. 하지만, 실무에서 그러면 안되겟죠? 그래서 저는 정답 유무 확인용으..
[알고리즘] Unpacking, List Comprehension, Dictionary 잘 쓰기, Sorting, Combination/Permutation, for, while문 에서의 else, Enumerate, Counter
Unpacking a, b = map(int, input().split()) 백준 문제를 풀다보면 친숙한 코드입니다. 이것은 iterable (모든 반복 가능한 객체를 iterable 하다고 합니다! 리스트, 튜플, 문자열 등등...) 한 데이터엔 모두 가능한 문법입니다. 입력 받은 list에서 첫번째, 마지막 값 or 나머지 값을 갖고 싶을 때! _list = [1, 2, 3, 4, 5] first_index, *rest, last_index = _list print(rest) # 2 3 4 list 모든 요소 꺼내보기 _list = [1, 2, 3, 4, 5] for num in _list: print(num, end = ' ') # 1 2 3 4 5 _list = [1, 2, 3, 4, 5] pri..
[알고리즘] 자료구조 시각화 사이트
시각화 사이트 visualgo 사이트에 접속한다 Binary Heap을 클릭한다 설명서는 읽어도 되고, 안읽어도 된다 좌측 하단에 보면 "Create(A)-O(NlogN)"을 클릭한다(참고로 최대힙임) "A= 원하는 값을 넣기" 원하는 값을 넣고, Go를 누르면 실행된다 https://visualgo.net/en visualising data structures and algorithms through animation - VisuAlgo VisuAlgo is free of charge for Computer Science community on earth. If you like VisuAlgo, the only "payment" that we ask of you is for you to tell the..
[백준] 백준 문제 풀기 환경 설정 & replit 사용
기존에는 VScode를 이용해서 백준 문제를 풀었었다.(엣날에...기억도안날정도) 알고리즘을 공부하기 시작하면서 VScode로 문제는 풀 수 있지만, 노트북과 컴퓨터를 번갈아 사용할 것을 대비해 온라인 코드 플랫폼을 사용하기로 했다. 그것이 replit이다. (colab도 있음) 사용 언어 : python 사용 플랫폼 : replit 회원가입과 프로젝트를 만드는 것은 간단하니 패쓰하겠다. input.txt 만들어 예제 입력 쉽게하기 백준 문제를 풀다보면 shell 및 console에 input 데이터(예제 입력)을 손으로 직접 넣어야 할 경우가 있다. (입력할 양이 4~10개 정도면 손으로 일일히 쓰겠지만, 10개 이상이 되면 너무 귀찮다😶😶) 그래서 많은 사람들이 input 데이터(예제 입력)파일을 만..
[알고리즘] 자료구조란
자료구조란(data structure) 자료(data) + 구조(structure)을 합친 의미라고 생각하시면 됩니다. 수많은 자료들을 어떤 구조, 형태로 만들어야 효율적인지 따지는 것입니다. 예를 들어, 책이 100권이 있다고 가정을 합니다. 그럼 책(책의 방향)을 가로로 쌓는게 좋을까요? 아니면 세로로 쌓는게 좋을까요? 당연히 세로로 쌓는다고 여러분들도 흔히 생각하실 것입니다. 그 이유는 간단하죠. 가로로 쌓게 된다면 맨 아래에 있는 책을 꺼내기가 힘들기 때문이죠. 이를 자료구조와 비교를 해보게 된다면, 자료는 책이 될 것이고, 구조는 세로가 될 것입니다. 자료구조가 중요한 이유가 있습니다. 책을 예시로 들었죠? 만약, 책을 사용하는 장소가 도서관이나 서점이라면 세로로 책을 정리하는 것이 더욱 효율적..