본문 바로가기

파이썬13

[프로그래머스] 스택/큐(Stack/Queue) : 주식가격 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한 사항 - prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. - prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 Prices Return [1,2,3,2,3] [4,3,1,1,0] 입출력 예 설명 - 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. - 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. - 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. - 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. - 5초 .. 2021. 5. 7.
[프로그래머스] 스택/큐(Stack/Queue): 다리를 지나는 트럭 문제 설명 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. solution 함수의 매개변수로 다리 길이 bridge_length, 다리가 견딜 수 있는 무게 weight, 트럭.. 2021. 5. 7.
[프로그래머스] 스택/큐(Stack/Queue): 프린터 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 .. 2021. 5. 7.
[프로그래머스] 스택/큐(Stack/Queue): 기능개발 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 - 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. - 작업 진도는 100 미만의 자연수입니다. - 작업 속도는 100.. 2021. 5. 7.
[Anaconda] 맥(Mac) 터미널에서 아나콘다 설치하기 최근에 파이썬 라이브러리 이것저것으로 실험을 하다가 결국 콘다 환경 내에서 잦은 충돌이 발생하기 시작했다. 문제를 해결하기 위해 터미널을 만져보다가 결국 conda PATH 설정도 변경해 conda, pip 명령어들조차 실행이 안 되기에 이르렀다. 고민하다가 삭제 후 재설치를 하는 것이 가장 낫겠다 싶어 다시 설치를 하게 되었다. 터미널에서 아나콘다를 삭제하는 방법은 간단하다. 터미널 창을 연 후 anaconda3 폴더가 있는 경로를 찾아 들어가 지워주면 된다. 나의 경우 경로가 `~/Users//` 로 되어있었기 때문에 먼저이 폴더를 삭제해주는 작업부터 시작했다. 주의할 점이 몇 가지 있는데, 1. 일반 사용자 권한으로 폴더를 삭제할 경우 권한이 없어 명령이 실행되지 않을 수 있다. 이 경우 명령어 앞.. 2021. 4. 19.
[백준] 1003번: 피보나치 함수 최근에 백준에 출제된 문제들을 풀기 시작했다. 백준에서 두 번째로 푼 문제는 피보나치 함수였는데, 해당 문제를 푸는 과정에서 배운 점들이 몇 가지 있어 기록차 남겨두고자 한다. 문제의 지문은 다음과 같았다. 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출.. 2021. 3. 11.
[인공지능 통합과정] 6주차 : 타이타닉 실습 (미니프로젝트 2) # 머신러닝 프로젝트의 교과서, 타이타닉 6주차 (사실 5주차 마지막 날 + 6주차 첫 날) 에는 머신러닝을 배우는 사람이라면 누구나 입문하게 되는 '캐글 타이타닉 프로젝트' 를 진행하게 되었다. (캐글 데이터셋: www.kaggle.com/c/titanic) Titanic - Machine Learning from Disaster Start here! Predict survival on the Titanic and get familiar with ML basics www.kaggle.com 이틀이라는 짧은 시간 동안 진행되었기에, '프로젝트'라고 부르기엔 약간의 어폐가 있는 것 같고 '실습활동' 정도가 적당한 것 같다. 본 실습의 목적은 정형데이터셋을 활용하여 일주일 간 배운 머신러닝 이론들을 코드로 .. 2021. 3. 8.
[인공지능 통합과정] 4주차: 세미프로젝트1 # 데이터 전처리의 늪 지난 글에 이어 세미프로젝트 1의 후기를 작성해본다. 우선 세미프로젝트1을 통해 가장 크게 배운 점을 요약하자면: !! 데이터 전처리는 데이터 분석의 핵심이다 !! 사실 이 당시, 데이터 전처리... 라고 하기에도 부끄러운 작업을 너무 오래 했었다. 지금 생각해보면 별 것도 아닌 일들에 쩔쩔매고, 어려워했다. 원인을 분석해보면, 팀원 전원이 pandas 에 익숙하지 않았음 -> 단순한 작업 하나도 구글링하거나 수업 자료 뒤적이느라 오래걸림 데이터 선정의 미스 -> 공공데이터 한두개 정도 선정해서 작업했어야 하는데 취합할 데이터가 5-6개로 늘어남 그도 그럴 것이, 우리 조의 주제는 '서울시 어린이 교통사고 발생 지역 분석' 이었는데, 우리가 다뤘던 공공데이터만 해도 10가지가 넘었.. 2021. 2. 9.
[인공지능 통합과정] 3주차 : Selenium, 기초통계, 미니프로젝트1 # Selenium 을 통한 웹 크롤링 지난 주차에서 진행되었던 웹 크롤링에 이어, 이번에는 Selenium 과 Chrome Driver (코드로 커서를 조종할 수 있는 가상의 브라우저) 를 활용하여 조금 더 세심한 조작을 하는 웹 크롤러를 만들어보았다. Beautiful Soup 과 Selenium 의 가장 큰 차이는 어떤 페이지를 크롤링할 수 있는지이다. 전자는 페이지 내의 정보가 변하지 않거나, 추가 로그인이나 버튼 클릭이 필요하지 않은 '정적 페이지' 크롤링을 위한 라이브러리이다. 실제로 속도도 빠르고 사용하기 간편하다는 장점이 있으나, 크롤링할 수 있는 페이지가 제한적이며 페이지 곳곳에 설치된 버튼을 누르거나 javascript 코드를 실행할 수 없다는 단점도 있다. 따라서 Beautiful S.. 2021. 1. 22.