반응형

PYTHON 21

[BOJ][2108번] 통계학

안녕하세요 Dibrary입니다. 이번에는 시간초과때문에 온갖 머리를 쥐어짰던 문제를 정리해보고자 합니다. 어휴 =_=;; (뭐 덕분에 Counter를 알게 되었으니까 다행이죠) 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제는 간단합니다. 그저 평균, 중앙값, 최빈값, 범위 만 구하면 됩니다. 그 와중에 혹시라도 시간초과 걸릴까봐 (너무 쉬운거 같은 문제는 꼭 이런게 걸려있곤 해서 말이죠) 미리 아이디어를 좀 짰었습니다. 값 받으면서 미리 정할 수 있는게 뭐 없을까? 최대값, 최소값은 값을 받으면서 미리 확인해 나갈 ..

[빅데이터를 지탱하는 기술] - 빅데이터 기술 개괄서

읽게 된 계기 데이터 처리 분야에 관심이 있어서 읽게 된 책이다. 이 책이 나온지가 좀 되었는데, 그때의 기술 처리와 지금과 얼마나 달라졌을지 그리고 각 기술분야별로 주된 도구의 변화가 있는지를 볼 수 있겠다 싶어서 이 책을 읽었다. (다행이도 동네 도서관에 있었다.) 이 책의 특징 빅데이터를 다루기 위해 필요한 도구들이 소개 되며, 도구에 대한 설명, 사용방법 등이 나와있다. 하나의 도구에 대해 모든 것을 설명하는 방식이 아닌 전체적인 '업무' 즉, 데이터 처리하는 과정에 있어서 어떤 방법이 필요했고, 그 방법에 적합한 도구가 이것이다~ 는 설명방식을 띄고 있다. 그래서 흐름 대로 따라가면 데이터를 이렇게 다루고, 가공하고 한다는 개념이 잡힌다. 간단 내용 정리 먼저 빅데이터라는 개념이 왜 나오게 되었..

독서/서평 2022.08.23

[BOJ][14502번] 연구소

안녕하세요 Dibrary입니다. 이번에는 제가 BFS/DFS에 아주 약간? 자신감이 생겨서 도전했다가 몇 시간을 .. 날려버린 문제를 정리해보겠습니다. 알고보니 BFS/DFS같은 그래프 풀이방법 만 쓰는 게 아니라, 여기에 모든 경우의 수 까지 같이 확인해야 하는 문제였어서 처음 접한 저는 매우 어려웠었습니다. 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 처음에 문제를 보고 곧바로 "BFS를 쓰믄 되겠다! " 라는 생각이 제일 먼저 떠올랐습니다. 왜냐하면, 문제에서 "바이러스는 퍼져나갈 수 있다" 라고 나왔기 때문이죠...

REST 테스트를 하기 위한 json-server 실행하기

안녕하세요 Dibrary입니다. RESTful API를 테스트 할 때, json 꼴로 반환해 주는 서버가 있으면 편리한데 대부분 아래 사이트를 많이 사용하곤 합니다. JSONPlaceholder - Free Fake REST API {JSON} Placeholder Free fake API for testing and prototyping. Powered by JSON Server + LowDB. Tested with XV. As of Oct 2021, serving ~1.7 billion requests each month. jsonplaceholder.typicode.com 이 사이트도 편리하지만, 데이터 넣고, 수정 작업을 하려면 직접 서버를 하나 돌리고 해당 서버를 이용해서 테스트 하는 것이 더 ..

[알고리즘 첫걸음] 파이썬 문법부터 알고리즘으로 넘어가는 기본서

이 책은 카페에서 우연히 댓글을 남기고 당첨되어서 읽게 된 책이다. (감사합니다.) 제목을 잘 살펴보면 '알고리즘 첫걸음'이다. 즉, 기본적인 개념을 쌓을 수 있으리라 추측되는데 본문을 읽고 나니 왜 첫걸음인지 알게 되었다. 흔히 그런 말이 있다. '첫 단추를 잘 꿰어야 한다' 이 책은 파이썬 문법 기본을 공부한 후에 파이썬으로 알고리즘을 도전하기 전에 보면 가장 적합한 책이라고 생각된다. 바로 그 점에서 '첫걸음'이라는 제목이 적합한 것이다. 사실 알고리즘을 풀 때는 C++이 가장 널리 사용되는데 실제로 알고리즘풀이 사이트를 확인해 보면 파이썬이 굉장히 많이 쓰이는 것을 알 수 있다. 최근에 들어서 파이썬이 AI및 통계분석으로 각광을 받으며 사용자가 늘어난 것 뿐 아니라 알고리즘에도 파이썬이 적합한 언..

독서/서평 2022.05.20

연결리스트 - 단순 연결 리스트

안녕하세요 Dibrary입니다. 이번에 정리해볼 자료구조는 리스트 입니다. 일반적으로 리스트란 일련의 동일한 타입의 항목을 의미. 뭔 소리냐하믄, 비슷한 것을 줄줄이 소세지 마냥 엮어 놓은 것이라 보면 됩니다. 근데 우리는 이미 비슷한 자료구조를 알고 있죠? 배열. 배열과의 차이는 뭘까요? 배열은 데이터가 연속으로 위치해 있고, 리스트는 그럴수도 있고 아닐수도 있다는 것입니다. 리스트를 잘 보시면 군데군데 꼭 붙어있지 않더라도 연결을 해서 하나의 '배열 처럼' 만들었죠? 이렇게 떨어진 곳의 데이터를 하나의 '배열 처럼' 다루고자 하는 것이 리스트 자료구조 입니다. 보면 데이터 1개마다 1개의 화살표로 다음 데이터를 이어줬는데 한 방향입니다. 이렇게 만든 것이 단순연결리스트 이고,이 화살표가 양방향이라면 ..

자료구조 2022.05.17

파이썬 데이터 분석 라이브러리 - Pandas (Series편)

안녕하세요 Dibrary입니다. 파이썬으로 데이터 분석을 할 때 Numpy와 더불어 굉장히 많이 쓰는 라이브러리가 있습니다. 바로 Pandas죠. Pandas의 모든 기능을 알려면... 한 900페이지에 달하는 책을 달달 외우고 공부해야 하는데, 막상 데이터 분석을 간단히 수행하다 보면 쓰는 기능만 쓰는 것을 알 수 있습니다. 그래서 간단하게 라이브러리 사용하는 방법을 정리해 두겠습니다. 사용하려면 여느 라이브러리와 마찬가지로 pip install pandas 하는거 잊으시면 안되용~ Series 가장 먼저 다루기 쉬운 Pandas의 자료구조인 Series를 보겠습니다. 이름 그대로 1차원의 배열 꼴 자료구조입니다. 먼저 라이브러리를 pd라는 별칭으로 불러와서 Series를 만들었습니다. type을 확인..

[BOJ][10815번] - 숫자카드 (python)

안녕하세요 Dibrary 입니다. 이번에는 사전형을 써야만 풀리는 문제를 정리해보고자 합니다. 먼저 제가 몇 번을 틀린 방식은 아래와 같습니다. 문제에서 주어진 500000이라는 횟수의 비교를 너무 가벼이 생각했음. list가지고 해결이 안 되길래, set을 이용했음. 그럼에도 안 됨. 우선 500000이라는 횟수는 생각보다 간단하네~ 라고 착각했던게 큰 오판이었습니다. 차례대로 비교를 해 나가야 하는 것이므로, 500000*500000 의 경우의 수가 있죠... ... 그래서 리스트로 접근했던 아래 코드는 시작도 못해보고 시간초과에 걸렸습니다. sys.stdin.readline 을 이용해서 입력을 받았음에도 말이죠. 그래서 set으로 담으면 괜찮을까? 싶어서 set으로 시도를 해보았는데, 역시나 시간초..

[Fluent Python] 2장 - 데이터 구조체 정리

안녕하세요 Dibrary입니다. '전문가를 위한 파이썬' 2장 정리 내용 입니다. 컨테이너 시퀀스 = list, tuple, collections, deque 균일 시퀀스 = str, bytes, bytearray, memoryview, array.array 컨테이너 시퀀스는 객체의 참조를 담고 있습니다. 균일 시퀀스는 값을 직접 담고 있습니다. 값과 참조의 차이를 코드로 살펴보겠습니다. list를 예로 들면, alpha값이 변하니까 alpha를 가지고 있던 tmp의 값도 변하네요. (참조하고 있었기 때문이죠) 원래 튜플은 불변형인데, 이렇게 하면 변경이 됩니다. (즉, 이렇게 사용하면 안 됩니다.) 튜플도 컨테이너 시퀀스라서 참조를 담고 있기 때문에 변경이 되네요. 반면 str은 아래처럼 작성시 그저 ..

[BOJ][1002번] - 터렛 (python)

안녕하세요 Dibrary입니다. 이번 문제는 백준알고리즘의 [1002번 - 터렛] 입니다. 제가 이 문제를 풀 때 처음에 쓸데없는 방향으로 생각이 빠져버렸었습니다. 그래서 아주 거지같은 코드가 탄생하기 시작했죠. 처음에 접근했던 생각 원점 위치별로 구분을 해야겠구나, 해당 구분 하에서 원점간의 거리와 반지름의 거리를 비교해야겠구나, 위 생각처럼 풀면 코드가 어떻게 나오냐면요... 이미 조건문만 너무 많죠? 조건문 안에 조건문이 또있고... 근데 또 위 골격에 맞춰서 작성하면 통과가 안 됩니다. 반례가 있는 것이죠... 그래서 생각을 해 보았습니다. 왜 이렇게 코드가 길어질까 뭐만 따지면 되는 것인가? 핵심은 원의 중심과의 거리, 반지름 만 고려하면 되는 것이었습니다. 처음에 원의 x, y 별로 다른 것을..

반응형