Python
-
[프로그래머스] 당구 연습 LV2Python/Programmers 2024. 2. 23. 23:39
1) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2)알고리즘 - 한마디로 표현하면 '대칭이동을 활용한 최단거리 구하기' # 문제를 풀고 정리하다가 깨달았다.(참고) - 몇몇 상황을 제외한 상황(즉 한쪽 축이 같은 좌표값을 갖는 경우) 모두 4개의 벽 중 가장 최단거리 구하기 # 문제를 풀고 정리하다가 3) 코드 def solution(m, n, startX, startY, balls): answer = [] for n_x, n_y in balls: if startX == n_x: if n_y > startY : answer.append(min((..
-
[프로그래머스] 광물 캐기 LV2Python/Programmers 2024. 2. 7. 14:32
문제) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘) 1. 총 곡갱이 수와 광물을 5개씩 분할(b_split 함수) #추가적으로 총 곡갱이 수로 수확가능한 광물까지 가지치기 2. 수확 가능범위 안에 있는 광물등급 갯수 확인 3. 내림차순으로 피로도가 가장 요구되는 구역을 다이아 -> 철 -> 돌 곡갱이 순으로 캐기 4. 총 피로도 누적합 출력 코드) def solution(picks, minerals): result = 0 total_p = sum(picks) bowl = b_split(minerals, total_p) bill = [] for..
-
[ROS] ROS Node 생성지식저장소 2023. 8. 13. 17:05
1. 패키지 만들기 일단 workspace/src로 이동한 다음 아래 명령어를 실행합니다. (rospy는 python을 위한 것이고 c언어를 한다면 roscpp로 작성) catkin_create_pkg std_msgs rospy roscpp 2. Node 만들기 여기서 Node란 ROS에서 파일을 실행시키는 단위로 생각하면 된다. 즉 Node끼리 Pub, Sub를 통해 데이터를 주고 받는다. #경로는 workspace를 기준으로 합 cd /src #Node 파일생성 touch .py 이후 workspace로 빠져나가서 Build가 진행되는 위치에서 catkin_make를 진행하면 된다.
-
[Conda] 다른 버전의 파이썬 사용을 위한 Conda세팅지식저장소 2023. 7. 13. 12:32
1) Anaconda 설치 Free Download | Anaconda Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 위 링크를 가지고서 Anaconda를 설치를 진행합니다. 설치괴정 중에 아래 같은 페이지가 나오면 두번째에 있는 "Add Anaconda3 to my PATH environment varible" 흔히 아시는 환경변수를 추가한다는 것 입니다. *저는 따로 진행하지 않았습니다. 2) Anaconda Prompt 실행 #0. env 생성(해당자만) #작성자는 pytorch 사용을..
-
[백준] 24090번 알고리즘 수업 - 퀵 정렬 1(python)Python/BAEKJOON 2023. 7. 2. 16:02
문제) 알고리즘) - 문제에서 퀵 정렬에 대한 기본 틀이 주어져있습니다. 이를 기반으로 코드를 작성 - 여기서 pivot는 배열의 맨끝 데이터를 기준으로 진행 - Result는 입력으로 주어진 c에 해당하는 교환 데이터를 출력하는 것 입니다. - 교환이 이루어지는 부분마다 조건문으로 cnt와 c를 비교해서 빠져나오게 구성합니다. * 재귀 알고리즘이 포함하는 문제에서는 재귀의 깊이를 설정하는 코드를 필수로 해주셔야합니다. pypy에서는 딱히 하지 않아도 됩니다. sys.setrecursionlimit(int(1e6)) 코드) #알고리즘 수업 - 퀵 정렬 1 import sys sys.setrecursionlimit(int(1e6)) #재귀 깊이제한 input = sys.stdin.readline def p..
-
[Softeer] 소프티어 로봇이 지나간 경로(python)Python/Softeer 2022. 7. 26. 15:21
문제) 알고리즘) 출력 기준 1. 출발 시작점 좌표값 2. 시작시 로봇이 바라보는 방향 3. 시작부터 끝까지 로봇이 이동 결과 (전진, 좌회전, 우회전) *시작점 찾기 -그래프 탐색을 통해 '#'를 찾고 현재 위치 '#'에서 4방향을 탐색해 '.'이거나 범위외 좌표를 포함해 3개이상이라면 해당 위치는 출발점으로 설정합니다. *이동 - 이동전에 로봇의 현재 상태(방향)를 출력하고 시작한다. - 일반적인 BFS알고리즘을 사용해서 '#'를 찾으며 이동하고 방문처리는 '#' -> '.'로 바꾸면서 처리했습니다. - 3번쨰 출력물인 이동 결과는 코드상에서 방향잡기아래에 해당하는 코드로 처리했습니다. 코드) #[인증평가(1차) 기출] 로봇이 지나간 경로 #사수가 조작한 로봇이 i행 j열을 방문했다면 #이고, 방문하..
-
[백준] 2346번 풍선 터트리기(python)Python/BAEKJOON 2022. 2. 28. 22:37
문제) 알고리즘) -첫시도 deque의 특징을 살려 pop(), popleft(), append(), insert() 등으로 조건에 맞게 배열을 회전시킨 후 결과 출력 -아래 코드- 첫 시도의 pop(), popleft(), append(), insert() 등을 rotate()를 활용해 한번에 구현 가능 ex) a = [1, 2, 3, 4, 5] a.rotate(1) => [5, 1, 2, 3, 4] a.rotate(-2) => [2, 3, 4, 5, 1] *주의사항 배열의 회전시 pop()한 데이터 인지하며 회전 수 설정 코드) #풍선 터트리기 import sys from collections import deque input = sys.stdin.readline n = int(input()) q =..