반응형

파이썬 84

라즈베리파이 파이썬 제어문

조건문if ~ elif ~ else파이썬은 else if 대신 elif 를 사용한다. and / or 연산자 파이썬은 && , || 대신에 and, or 를 사용한다. 예시 코드if __name__ == "__main__": a = 10 b = 20 if a>b: if a10: print("A") elif a10: print("B") else: print("C") 출력B  for 반복문for 사용법이 C/C++ 과 조금 다르다.range(시작,끝, 증감) 예시 코드if __name__ == "__main__": a = [10,20,30] for i in range(3): print(a[i])..

라즈베리파이 파이썬 함수

print()출력 함수로 ,(콤마) 를 이용해 여러 데이터를 출력할 수 있다python은 세 가지 방법으로 문자열 포매팅이 가능하다. 예시 코드if __name__ == "__main__": print(10) print(10, 20, 30) print(10, "hello", 20) n = 12 print("SSAFY {}th Fighting!".format(n)) print(f"SSAFY {n}th Fighting!") print("SSAFY %dth Fighting!" %n) 출력1010 20 3010 hello 20SSAFY 12th Fighting!SSAFY 12th Fighting!SSAFY 12th Fighting!  print는 기본적으로 줄바꿈을 지원한다..

라즈베리파이 파이썬 자료형

개요파이썬은 type 을 선언하지 않는다.string, char에 대한 구분이 없다.마찬가지로 리스트나 튜플같은 자료구조 또한 구체적으로 명시해 주지 않는다.예를 들어 C++에서 벡터를 사용하기 위해선vector lst; 라고 선언을 해줘야 한다.하지만 파이썬에서는 lst = [] 이 코드 하나로 lst라는 이름의 리스트를 생성하였다.  List파이썬 리스트C의 배열과 다르다.type을 가리지 않는다.동적 할당lst = ['Hello', 5, 4.12] 이런식으로 리스트 안에 문자열, 정수, 실수를 모두 넣을 수 있다. 관련 메서드len() : 길이 구하는 API.append(요소) : 요소를 리스트 가장 뒤에 붙이는 APIlst = []lst.append(1)lst.append(2)print(lst.l..

라즈베리파이 파이썬 기초

라즈베리파이Maker 교육용 보드SBC( Single Board Computer )로 많은 리눅스 개발자와 임베디드S/W 개발자를 꿈꾸는 학습자들이 교육용으로 다루는 매우 훌륭한 MPU이다. 실제 OS를 건드릴 수 있으므로 리눅스 커널 프로그래밍, IoT등의 실습에서 활용된다. 라즈베리파이는 Python을 기본 언어로 사용한다.Python을 이용한 라이브러리 중 gpiozero 라이브러리를 사용한다.  용어Reference : 도움이 되는 참고자료를 뜻한다.Library : 다른 사람이 만든 소스코드를 가져다 쓸 수 있도록, 함수 / 클래스들로 구현된 소스코드 모음모듈 : 일반적으로는 큰 System을 이해하기 쉽게 기능별로 나눈 작은 단위를 뜻함 (.py 파일 1개)Package : Python 에서는..

임베디드 S/W 개발과 Application

Application란?운영체제 안에서 동작하는 프로그램을 App 이라고 한다. 모바일 app의 경우 안드로이드라는 운영체제 안에서 동작되는 프로그램이므로, App이다.마리오카트와 같은 게임도 닌텐도 OS에서 동작되는 프로그램이기에 App이 맞다. 그럼 리눅스에서 C언어로 개발하는 프로그램도 App일까?리눅스 운영체제 안에서 돌아가는 프로그램이기에 App이 맞다. 임베디드 개발자의 구분임베디드 S/W 개발자를 아래와 같이 나눌 수 있다.Application Level 개발자Middleware Level 개발자Low Level 개발자 Application level 개발자임베디드 S/W 개발자라고 무조건 Firmware 같은 Low Level 개발만 하지 않는다.임베디드에서 사용되는 운영체제는 다음과 같다..

임베디드 2024.09.29

백준 11779번 최소비용 구하기 2 파이썬 다익스트라

리뷰오랜만의 파이썬 풀이였는데 C++을 주로 쓰다보니 이제 파이썬이 익숙치 않아 큰일이다.. 문제 풀이일반적인 다익스트라 풀이로 쭉 진행한다.인접리스트를 n + 1크기로 초기화 후 단방향으로 값을 받아준다.거리 리스트를 적당히 큰 값으로 설정하고 n + 1 크기로 초기화 해준다.경로를 나타낼 path 배열을 0 값으로 n + 1크기로 초기화 해준다.시작 위치의 거리를 0으로, 힙을 세팅해 주고 while문을 돌려준다.힙에서 pop한 현재 노드를 기준으로 인접리스트를 돌고 만약 현재 까지 구한 해당 노드까지의 거리보다 현재 거리가 더 작을경우 갱신해 준다.이때 path 배열의 다음 노드 인덱스에 현재 노드를 넣어준다. 이후 갱신한 거리와 다음 노드를 힙에 추가해준다.while 루프가 끝난 후 우선 목적지 ..

백준 4179번 불! C++

리뷰어차피 불에 닿으면 타죽으니 범위를 지정해 주지 않아 OutOfBounds 에러가 떴다. 다시 생각해 보니 범위는 꼭 지정해 줘야 했다.기존의 BFS문제와 같지만 지훈이와 불의 입장에서 모두 생각해 주어야 하는 문제 문제 풀이r, c와 미로 정보를 받아준다. 나는 1차 문자열 배열로 미로를 받아와 주었다.좌표 및 지훈이 여부, 시간 등의 정보를 pos 구조체로 정의해 주었다.큐대신 덱으로 받아와 만약 지훈이의 위치라면 push_front를, 불의 정보랑 push_back으로 정보를 받아와 줬다. 이때 j변수를 불이라면 0, 지훈이라면 1로 초기화 해주고, t변수를 지훈이라면 1, 불이라면 0으로 초기화 해줬다.while 루프를 시작하고 pop 후 현재 위치가 가장자리면서 지훈이라면 time을 리턴해 ..

백준 1261번 알고스팟 C++, 파이썬

리뷰C++, 파이썬 모두 힙을 사용한 BFS로 문제를 풀었다. 문제 풀이m과 n을 입력받고 2차 배열을 입력 받는다, 방향 배열을 4방향으로 초기화 한 후 방문 배열도 n * m크기로 초기화 한다.힙에 (벽을 부순 횟수, x좌표, y좌표)를 초기화 해준다. 초기값은 (0, 0, 0)이다. 최소 벽을 출력할 min_wall 변수도 0으로 초기화 해주고 while 루프를 실행한다.현재 힙에 존재하는 벽이 가장 낮은 정보를 뽑아온다.만약 끝부분에 도달했다면 현재 까지 부순 벽의 수를 min_wall에 저장해 준다.그게 아니라면 4방향을 체크하며 범위 내에 존재하는지, 방문을 한적이 있는지를 체크해 준다.만약 방문을 하지 않은 좌표라면 방문 처리를 해주고, 해당 좌표의 값이 1이라면 부순 벽을 1만큼 올려준 뒤..

백준 1238번 파티 파이썬

리뷰처음엔 파티 장소까지 갔던 인덱스를 구해 다시 돌아오면 되는 줄 알았지만 문제를 자세히 읽어보니 왕복 거리가 가장 큰 수를 출력해 내는 것이였다. 문제를 잘 읽자... 문제 풀이우선 모든 마을에서 x번 마을까지의 거리를 모두 구해준 뒤 거리 정보의 리스트를 리턴해준다. 난 go에 저장했다.이제 for문을 통해 x에서 모든 마을로 가는 경우의 수를 구해준 뒤 back이라는 리스트에 저장해준다.go와 back을 더한 값이 가장 높은 경우가 왕복거리가 제일 큰 학생의 거리가 된다. 참고 사항함수를 사용하지 않으면 코드가 너무 길어지기에 적절히 bool 인자를 섞어 함수로 구현하자dist를 INF로 초기화 해줄때 0번 인덱스는 0으로 바꿔줘야 max를 사용하기 편하다.go와 back을 비교하기 쉽게 back..

백준 1916번 최소비용 구하기 파이썬

리뷰출력에서 예제 테스트용인 인덱스 5를 넣었다가 한번 틀려버렸다 ㅠ 문제 풀이n, m값을 받아주고 e는 빈 리스트를 n + 1개, dist는 INF 를 n + 1개로 초기화 해준다.m개 줄에 a, b, c를 받아주고 a번 노드에 거리 c와 도착지점 b를 리스트로 추가해 준다.start와 end가 될 도시의 정보를 받아와 주고 힙에 [0, start]를, start 도시의 거리를 0으로 초기화 해준다.while루프를 시작하여 현재 누적 거리보다 더 빠른 거리가 있을 경우 해당 도시까지의 거리를 최신화 해준다.while루프를 마친 후 end 도시까지의 거리를 dist[end]를 통해 출력해 준다. 참고 사항마지막줄에 시작 도시와 도착 도시의 정보가 있으니 꼭 참고하자  정답 코드import sysimpor..

728x90
반응형