본문 바로가기

전체 글137

pandas를 이용하여 csv row 추출하기 공공데이터포털에서 크롤링하여 국토관리, 사회복지 관련 자료를 다운받아 엑셀작업을 하는 임무를 부여받았다. 국토관리는 1,694건, 사회복지는 2,210건으로 크롤링 할때 데이터를 다 받으면 좋겠지만 다운로드 형식이 각각 csv, xlsx 가끔씩 hwp, zip 파일이 업로드 되어있다. 또 링크를 접소하여 해당 홈페이지에서 다운을 받아야하는 자료도 있기 때문에 공공데이터포털에서 리스트만 추출하였다. 약 3,900개의 자료를 다운받아서 해당 파일의 데이터를 보고 엑셀작업을 해야하는데 문제는 여기서 발생하였다. 각 데이터의 항목과 데이터예시를 엑셀에 저장해야하는데 이 작업이 시간이 많이 걸렸다. 반드시 코딩으로 시간 단축이 필요한 상황이였다. 예전 python으로 데이터를 추출하는 방법을 들은적이 있었다. 그.. 2020. 6. 11.
[백준 15685] 드래곤 커브, C++ https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커� www.acmicpc.net 본 문제는 문제도 잘 이해되지 않고, 접근하기가 어려워 검색을 통해 힌트를 얻었다. 문제의 핵심은 다음과 같다. 첫 방향이 0이고 3세대인 경우는 (0), (0, 1), (0, 1, 2, 1), (0, 1, 2, 1, 2, 3, 2, 1)과 같은 규칙으로 드래곤 커브를 만들 수 있다. (0, 1)를 i번이라 하면 i+1번은 (i번 째) + (i번을 1씩 증가하고 뒤집는.. 2020. 5. 16.
[백준 14499] 주사위 굴리기, C++ https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도에 쓰여 있는 수가 북쪽부터 남쪽으로, 각 줄은 서쪽부터 동쪽 순서대로 주어진다. 주사위를 놓은 칸에 쓰여 있는 수는 항상 0이다. 지도의 각 칸에 쓰여 있는 수는 10을 넘지 않는 자연수 또는 0이다. 마 www.acmicpc.net 본 문제는 주어진 지도위에서 주사위를 굴릴 때 다음과 같은 조건을 만족해야 한다. 도착한 칸이 0일 경우 주사위 바닥의 수를 도.. 2020. 5. 11.
[백준 3190] 뱀, C++ https://www.acmicpc.net/problem/3190 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. www.acmicpc.net 본 문제는 'Dummy'라는 도스 게임이 있다. 이 게임에는 뱀이 나와서 기어 다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어 다니다가 벽 또는 자기 자신의 몸과 부딪히면 게임이 끝난다. 좀 더 자세한 설명은 링크를 참고하길 바란다. 뱀을 머리와 꼬리를 진짜로 움직이기는 까다롭다. 그래서 뱀을 이동한 시간과 뱀의 길이를 이용하여 문제를 해결할 수 있다. 방문한 칸에 사과가 있으면 뱀의 .. 2020. 5. 11.
[프로그래머스] level 3 - 가장 먼 노드, C++ https://programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 문제의 자세한 설명은 링크를 참고하길 바란다. vector를 인접 리스트로 만들고 BFS 탐색을 한다. (chk 배열을 통해 1번만 방문하도록 한다.) 1에서 떨어진 길이를 기준으로 배열의 값을 증가 시킨다. 가장 멀리 떨어진 길이를 구하고 그 길이의 배열값을 return한다. 12345678910111213141516171819202122232425262728293031323334353637383940#.. 2020. 5. 8.
[프로그래머스] level 3 - 네트워크, C++ https://programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 자세한 문제의 설명은 링크를 참고하길 바란다. 간접 리스트를 구하고 chk배열을 이용하여 방문여부를 파악하면 된다. 12345678910111213141516171819202122232425262728293031323334353637383940#include #include #include #include using namespace std; int solution(int n, vector computers).. 2020. 5. 7.
[프로그래머스] level 3 - N으로 표현, C++ https://programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solut.. 2020. 5. 7.
[프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 징검다리 건너기, C++ https://programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 문제는 주어진 징검다리를 최대 몇명이 건널 수 있는지 구하는 문제다. 문제의 조건은 다음과 같다. 징검다리는 일렬로 놓여 있고 각 징검다리의 디딤돌에는 모두 숫자가 적혀 있으며 디딤돌의 숫자는 한 번 밟을 때마다 1씩 줄어든다. 디딤돌의 숫자가 0이 되면 더 이상 밟을 수 없으며 이때는 그 다음 디딤돌로 한번에 여러 칸을 건너 뛸 수 있다. 단, 다음으로 밟을 수 있는 디딤돌이 여러 개인 경우 무조건 가장.. 2020. 5. 5.
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 후보키, C++ https://programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 문제는 후보 키를 찾는 문제로 후보 키가 될 수 있는 조합을 찾는 문제다. 조합을 구하는 문제는 비트 마스크를 이용하여 구할 수 있다. (비트 마스크는 디버깅하기 힘들지만 브루트 포스 문제에서 쉽게 순서를 정할 수 있다.) 가능한 모든 조합에서 최소성 검사, 유일성 검사 순으로 확인하면서 후보 키를 구하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2.. 2020. 5. 5.