반응형

파이썬 69

[BOJ][2018번] 수들의 합 5

안녕하세요 Dibrary입니다. 이번에는 흔히 '투 포인터' 를 써서 풀어야 하는 문제를 정리해보겠습니다. 이번 문제는 단순히 합을 구하는 것입니다. 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 우선 이 문제를 처음 보았을 때, '투 포인터'라는 개념 자체도 몰랐었습니다. 그래서, 가장 먼저 떠오른 생각은 '완전 탐색'이었죠. 문제는, N이 1000만까지 주어질 수 있는데, 그러면 1개씩 전부 끝까지 진행해보고, 2개씩 전부 끝까지 진행해보고, 3개씩 ... N-1개는 안되겠지만 이런..

Python을 이용해서 HDFS의 파일 읽어오기

안녕하세요 Dibrary입니다. 이번에는 제가 하둡 클러스터에 올린 파일을 파이썬으로 읽어보겠습니다. 참고로 사용하실 파이썬에는 미리 hdfs 라이브러리가 있어야 하므로 pip install hdfs 를 해 주세요. 제가 사용한 hdfs 버전은 2.7.0 이네요. 해당 라이브러리를 더 상세하게 익히고 사용하고자 하는 분들은 아래 사이트를 참고해주세요. API reference — HdfsCLI 2.5.8 documentation Parameters: url – Hostname or IP address of HDFS namenode, prefixed with protocol, followed by WebHDFS port on namenode. mutual_auth – Whether to enforce mu..

[BOJ][12891번] DNA 비밀번호

안녕하세요 Dibrary입니다. 이번에는 백준의 12891번 문제를 통해 '슬라이딩 윈도우'방법을 알아보겠습니다. 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 위 문제는 사실 모든 경우의 수를 따져보아도 구할 수 있습니다. 문제는, 주어진 문자열의 길이가 100만까지 가능하니까 해당 방법은 쓸 수 없다는 것이죠. 그러면 '모든 경우의 수를 따지지 않아도 될까?' 라는 생각이 떠오르실텐데, 네. 가능합니다. 문제에 이런 조건이 있기 때문이죠, 위 예시를 통해 뽑을 때, 항상 '순서대로 ..

[프로그래머스][최소직사각형] - 그리디 문제

안녕하세요 Dibrary 입니다. 이번에는 과거에 풀지 못했던 문제를 다시 도전했는데, 생각외로? 쉽게 풀려서 당황했는데, 왜 그런 느낌을 받았는지를 정리해보고자 합니다. 문제는 '최소 직사각형'이라는 문제인데, 처음에 맞이했을 때의 그 느낌을 아직도 잊을 수 없습니다. (알고리즘을 아예 풀지 못하면서 BOJ에서 A+B 이런거만 건드릴 때 였죠...) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 지금에 와서야 이 문제가 '그리디'고, 문제에 '숨은' 조건을 찾는 것이 중요하다는 것을 알지만, 처음에는 아예 몰랐습니다. 처음에 이 문제를 맞닥뜨리고 느낀 ..

파이썬으로 구현해 확인하는 MODBUS통신 - Client 편

안녕하세요 Dibrary입니다. 파이썬으로 온갖걸 다 할 수 있다는건 많이들 알고 계실겁니다. 그 중에 Plant 산업 현장에 많이 쓰이는 Modbus도 파이썬으로 가능한거 알고 계세요? 만능이죠 만능. 간단하게 Modbus 통신을 이용해서 Client로 값을 쓰고 읽는 것을 해 보겠습니다. 저는 Jupyter를 사용해서 결과를 보여드릴거고, Device는 modSim이라는 시뮬레이터로 확인해 보았습니다. (물론, 실제 PLC, MCU보드, 인버터 등등을 제어하는 것도 했습니다.) 시뮬레이터는 아래에서 받으실 수 있습니다. Modbus simulator Download Modbus simulator for free. Modbus RTU and TCP/IP slave simulator. For Testin..

[BOJ][2343번] 기타 레슨

안녕하세요 Dibrary입니다. 이번에는 이진탐색을 사용해서 풀어야 하는 문제를 정리해보겠습니다. 처음에 나름 알머리 굴리다가 시간초과로 실패를 겪은 문제입니다. 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 문제를 처음 보자마자 떠오른 생각은 아래와 같습니다. M만큼만 자르면 된다. (이걸 반복문에서 캐치해야 할 것 같다.) M만큼 자르는 M-1 포인터를 for문으로 돌리면 어떨까. 근데 2번에서 생각해보니 거의 100000! 번에 가까운 연산이 이뤄질 수도 있다는 생각이 들어서 위 방법은 곧바로 포기 했습니다...

[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 이 사이트도 편리하지만, 데이터 넣고, 수정 작업을 하려면 직접 서버를 하나 돌리고 해당 서버를 이용해서 테스트 하는 것이 더 ..

[BOJ][1931번] 회의실 배정

안녕하세요 Dibrary입니다. 이번에는 굉장히 유명한 '회의실 배정'문제를 정리해보겠습니다. 사실, 이 문제는 여러 알고리즘 책에 소개가 되었으나 막상 안보고 하려니 잠시 헷갈린 문제입니다. 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 먼저 예제 입력에 대해서 확인을 해보겠습니다. 총 11개의 가능한 시간이 주어지는데, 이를 엑셀로 표현해보면, 이렇게 나옵니다. 이 중에 예제 출력의 결과인 4가 나오게 하려면, 이렇게 골라야 합니다. 근데, 이때 제가 의문이 들었던 내용은, 첫 번째로 택해진 1, 4에 해당되는 시간 구간은 맨 처음에 시작하는 것도 아니고, 그렇다고 길이가 가장 긴 것도 아니고, 아무것도 아닌데, 그럼 ..

[BOJ][6198번] 옥상정원 꾸미기

안녕하세요 Dibrary입니다. 이번 문제는 '스택'을 활용한 문제입니다. 스택을 배우긴 했는데, 어떻게 써야할 지 모르는 사람이었다면 이 문제를 풀지 못했을 겁니다. (저처럼요...) 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net 먼저 예시로 나온 문제를 보면 10, 3, 7, 4, 12, 2 에서, 10을 기준으로는 3개, 7은 1개, 12는 1개 총 5개를 볼 수 있죠. 그래서 전 처음에 이런 방식으로 도전했었습니다. 모든 타워 정보를 넣은 후에, for문을 2겹으로 돌면서 기준 타워보다 그 다..

반응형