전체 글

[Python] (정렬) K번째 수
문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a..

빅데이터 첫걸음 시작하기 : 데이터분석 인강 4주차
4주차 수업 3주차까지가 파이썬 프로그래밍 언어와 빅데이터 분석의 기초를 다졌다면, 4주차부터는 각각 다른 분야의 데이터를 이용하여 어떤 기준으로 데이터 분석을 할 것인지를 실습한다. 실습에 사용한 데이터는 총 3종류였고, 데이터 각각에 대해 분석 주제를 여러 개 정하여 진행했다. 각 데이터 분석에서 사용하는 모듈은 주로 pandas와 matplotlib였다. pandas는 상당히 많은 양의 데이터를 처리하기에 적합한 라이브러리라는 것은 이전 시간에 배웠다. matplotlib은 데이터 차트를 그려주는 라이브러리로 선그래프(plot). 막대그래프(plot.bar), 가로막대그래프(plot.barh), 히스토그램(plot.hist) 등 많은 그래프 모델을 제공한다. 데이터 그래프를 그리는 것과 더불어, 결..

[Python] (해시) 위장
문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. cloth..

[Python] (해시) 전화번호 목록
문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예제 ph..

[Python] (해시) 완주하지 못한 선수
문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "kiki"..

SLAM & Navigation
SLAM(Simultaneous Localization And Mapping) 동시적 위치 추정 및 지도 작성 Navigation 차량 자동 항법 장치 길 찾기에 필요한 요소 위치: 로봇의 위치 계측 / 추정하는 기능 센싱: 벽, 물체 등의 장애물의 계측하는 기능 지도: 길과 장애물 정보가 담긴 지도 경로: 목적지까지 최적 경로를 계산하고 주행하는 기능 이 4가지가 ROS에서 사용하는 패키지나 메시지가 될 수 있음 위치 GPS(Global Positioning System) 실외에서 사용하기에 적합 상대적으로 위치의 오차가 커서 이를 고려해야 한다. 날씨의 영향을 많이 받는다. 고층 빌딩이 많은 곳에서 오차가 많이 발생한다. IPS(Indoor Positioning Sensor) GPS의 단점을 보완하기..

ROS 모바일로봇
대표적인 ROS의 모바일로봇으로 터틀봇이 있다. 여기서는 터틀봇을 위주로 모바일로봇에 대해 설명한다. 터틀봇(Turtle Bot) 터틀(turtle)은 1967년에 개발된 교육용 컴퓨터 프로그래밍 언어인 로고(Logo)를 이용해 실제 로봇을 구동하기 위해 만들어진 터틀 로봇에서 유래되었음. ROS의 공식 로봇 플랫폼이다. SLAM, Navigation, Gazebo, RViz 등을 서포트함 TurtleBot3의 하드웨어는 오픈소스로 깃허브에 제공되어서 3D 프린터로 출력이 가능하다. TurtleBot3 네트워크 PC와 TurtleBot을 연동하는 경우 gedit ~/.bashrc 위 명령어로 bashrc 파일을 열어서 아래와 같이 변경한다. IP 주소는 터미널에서 ifconfig를 입력하면 알 수 있다...

ROS 임베디드 시스템
컴퓨터 자원의 종류와 ROS 지원 ROS 설치 가능 ARM A-class - Samsung Exynos... / ODROID... x86 - Intel Core i-series... / Intel NUC... ROS 설치 불가능 32-bit MCU - ARM Cortex-M0, ARM Cortex-M7 ... 8/16-bit MCU - Atmel AVR, Arduino Leonardo ... PC와는 달리 임베디드 시스템에서는 ROS 설치 불가능 대신 ROS가 설치 가능한 하드웨어와 USB로 연결이 가능(ROS는 rosserial이라는 패키지를 제공 / PC 등에서 구동) 임베디드 시스템은 모터 제어, 센서 조정 값 등을 ROS가 설치된 PC로 전달 rosserial PC와 제어기 간의 메시지 통신을 위..