안녕하세요. 이번 시간에는 파이썬 tuple 활용법을 알아봅시다. 예제 프로그램을 봅시다. 제가 많이 쓰는 용법은 크게 3가지입니다. 튜플의 비교, 순회, 인덱스 접근. 이렇게 3개입니다. 이들은 사실, list와 비교했을 때 큰 차이가 없습니다. 3번째 줄을 보면, int를 5개 모아놓은 튜플 a와 b를 비교합니다. int는 비교 연산이 구현되어 있습니다. 그러므로, 아래와 같이 비교합니다. 두 개의 tuple이 있습니다. 위에 있는 것이 tuple a고 밑에 있는 것이 tuple b라고 해 봅시다. 첫 번째 원소를 비교합니다. 둘이 같습니다. 같으니까 2번째 원소끼리 비교합니다. 두 번째 원소도 비교해 봅니다. 역시 둘 다 같네요. 세 번째로 넘어갑니다. 그런데, 세 번째와 네 번째도 같습니다. 그러..
python 검색 결과
python의 Collections에는 자주 쓰일 법한 유용한 자료 구조들이 있습니다. 파이썬의 Queue 대신에 쓸 수 있는 deque도 있습니다. 이것은 다음에 언급하도록 하고요. 이 중에서 이번 시간에는 Counter를 어떻게 쓰는지 간단하게 알아보도록 하겠습니다. 먼저 예제 1번을 보겠습니다. 3번째 줄에서, cs[1] += 2가 있습니다. 이는, 키 1이 나오는 빈도를 2만큼 증가시킨다는 의미입니다. 4번째 줄에 cs[1]이 있는데요. 이는 키 1의 빈도를 가져옵니다. 2가 되겠네요. 다음에 5번째 줄에서는 cs.pop(1)이 있는데요. 이는 키 1을 제거한다는 의미입니다. 이전에 key 값이 1이고, v가 2인 정보가 있었어요. 키 1을 pop 메서드로 제거하면, 이 정보가 사라집니다. 그러면..
이번 시간에는 파이썬에서 구분자가 여러개일 때 split를 어떻게 쓰는지 알아봅시다. 문자열이 주어질 때, ,이나 $이나 .이 오면 이것을 구분자로 취해야 합니다. 예를 들어서, 예시 문자열은 123,..,4$567alpha일 때, split를 한 결과는 123, 4, 567alpha 순서대로 나와야 합니다. 단순하게, split만 쓰기 위해서는 구분자들을 하나의 구분자로 통일시키기만 하면 됩니다. 이 패턴은 실무에서 문자열 처리 할 때 자주 쓰이는지는 모르겠습니다. 그러나, 코딩 테스트에서는 심심찮게 쓰이는 스킬이므로 알아두시면 도움이 매우 많이 됩니다. 플로우를 볼까요? .과 ,과 $를 기준으로 분리하라고 했는데요. 이런 문제를 multiple delimeter라고 해요. 구분자다. 라는 정보가 사라..
안녕하세요. 이번 시간에는 파이썬 입력 여러줄을 받는 방법을 알아봅시다. 보통, 최근에 나온 백준 문제들은 input의 갯수를 주거나, 끝을 알 수 있는 특정한 무언가가 있습니다. 그런데, 간혹 가다가, 파일의 끝을 판단해야 하는 경우가 있어요. 이럴 땐 어떻게 해야 할까요? 결론만 보시려면, 맨 밑에 단락만 보시면 되는데요. tracemalloc을 이용해서 trace 하는 것을 보시려면 글 전체를 읽어보시는 것도 좋습니다. 파일의 line이 매우 많지만, 한 라인 당 글자수는 100자를 넘지 않는다고 가정해 봅시다. 그 전에 tracemalloc은 메모리가 얼마나 할당되었는지 추적합니다. 문서를 보면, 자세히 알 수 있는데요. 이 글에서는 사용법을 상세히 알려드리진 않을 것입니다. 단지, 링크에 있는 ..
이번 시간에는 파이썬의 list comprehensions에 대해 알아봅시다. list를 간단하게 초기화 할 수 있는 방법입니다. 먼저 예제 3개를 보도록 하겠습니다. 예제 1번입니다. [k for k in range(10)]이 있네요. 뒤에서부터 해석해 봅시다. 일단 for K in A를 먼저 봐야 하는데요. A가 range(10)이였습니다. 게다가, range는 iterable 해요. 그러면, K의 값은 0부터 9까지 된다는 의미인데요. for 앞에 K가 붙어 있어요. 그러면 K값이 list의 원소가 된다는 의미입니다. 그러면, list에 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]가 나와야 할 텐데요. 정말 그렇게 나왔나 볼까요? 정말 그렇게 나왔습니다. 이제 필터링을 해 보겠습니다. 아..
최근댓글