전체 글 86

[백준] 2003번: 수들의 합 2 -파이썬

문제 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 풀이 Two Pointer를 사용! 두 개의 포인터를 이용해서 탐색하는 것으로 "특정한 합을 가지는 부분 연속 수열" 문제에서 사용한다. 답안 코드 예외 처리를 생각하지 못해서 조금 시간이 걸렸지만....

Algorithm 2022.01.13

[백준] 1697번: 숨바꼭질 -파이썬

문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 풀이 BFS을 사용하여 접근해봤다. 기본적인 BFS 함수 # BFS ..

Algorithm 2022.01.13

[백준] 10845번: 큐 -파이썬

문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 ..

Algorithm 2022.01.11

입력방법

입력받기 (문자열) x = input() x = input("입력하세요:") #입력할 값에 대한 안내 출력 -input 함수의 리턴값은 문자열이다. ->숫자를 입력해도 숫자로 이루어진 문자열로 본다. ->따라서 정수로 받고 싶으면 다음과 같이 자료형변환을 해준다. 문자열을 변환하여 입력받기 x = int(input()) #정수 x = float(input()) #실수 x = eval(input()) #자동변환 (정수는 정수로, 실수는 실수로 변환) 한줄에 여러개 입력받기 (문자열) a, b = input().split() -공백으로 분리하여 받는다 여러 개의 정수받기 a, b = map(int, input().split()) -split의 결과를 모두 int로 변환해준다. *map: 리스트의 요소를 지정..

[백준] 14226번: 이모티콘 - 파이썬

문제 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만들어 보려고 한다. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다. 화면에 있는 이모티콘 중 하나를 삭제한다. 모든 연산은 1초가 걸린다. 또, 클립보드에 이모티콘을 복사하면 이전에 클립보드에 있던 내용은 덮어쓰기가 된다. 클립보드가 비어있는 상태에는 붙여넣기를 할 수 없으며, 일부만 클립보드에 복사할 수는 없다. 또한, 클립보드에 있는 이모티콘 중 일부를 삭제할 수 없다. 화면에 이모티콘을 붙여넣기 하면, 클립보드에 있는 이모티콘의 개수가 화면에..

Algorithm 2022.01.10

[프로그래머스] 로또의 최고 순위와 최저 순위

https://programmers.co.kr/learn/courses/30/lessons/77484#fn1 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 문제 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 input: 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums output: 당첨 가능한 최고 순위와 최저 순위를 차례대로 ..

Algorithm 2021.11.23

[부캠AI] AI Math - 백터가 뭐예요?

AI Math 1강: 백터가 뭐예요? 벡터의 기본 개념과 연산, 노름에 대해 소개합니다 📌백터란? 공간에서 한 점을 나타내며, 원점으로부터 상대적 위치 숫자를 원소로 가지는 리스트(list) 또는 배열(array) 백터에 숫자를 곱하면 길이만 변한다. (스칼라 곱) 같은 모양을 가지면 덧셈, 뺄셈과 성분곱(Hadamard product)을 계산할 수 있다. x = [1,2,7] x = np.array([1,2,7]) 📌백터의 노름 원점에서부터의 거리 L1-norm 각 성분의 변화량의 절대값을 모두 더한다 L2-norm 피타고라스 정리를 이용해 유클리드 거리를 계산 파이썬 코드 def l1_norm(x): x_norm = np.abs(x) x_norm = np.sum(x_norm) return x_norm..

Machine Learning 2021.08.09

[인공지능] 개념!

인공지능 - 사람의 지능을 모방하여 사람이 하는 것과 같이 복잡한 일을 할 수 있는 기계를 만드는 것 - 인공지능을 구현하는 방법 중 중요한 방법이 머신러닝(기계학습) 머신러닝 - 어떤 데이터를 분류하거나 값을 예측하는 것 - 3가지 종류: 지도학습, 비지도학습, 강화학습 1. 지도학습: 입력과 결과값(label)을 이용한 학습 분류(yes or no) 와 회귀(특징, 그래프) 2. 비지도학습: 입력만 이용한 학습 무엇인지 정의할 수 없지만 비슷한 단위로 군집화 지도학습에서의 적절한 feature를 찾아내기 위한 전처리 방법으로 쓰기도 함 3. 강화학습: 데이터가 존재하는 것도 아니고 데이터가 있어도 정답이 따로 정해져 있지 않음 자신이 한 행동에 대해 보상을 받으며 학습 보상의 가중치를 최대화 하는 것..

Machine Learning 2021.06.14

라즈베리파이4 부팅 후 자동 실행 (인터넷 연결이 필요할 경우!)

rc.local, systemd 다 해봤지만 인터넷 연결이 필요한 코드라 실행이 되지 않았다.. 며칠간 삽칠한 결과, 드디어! 방법을 찾았다. 이 방법은 startx까지 모두 실행한 후 실행하기 때문에 GUI프로그램들도 잘 작동한다. 1. 터미널창을 열어서 다음과 같이 친다. $ sudo nano /etc/xdg/lxsession/LXDE-pi/autostart 여기 아래에 다음과 같이 실행하고 싶은 파일을 적는다. lxterminal -e python3 /home/pi/test.py **사실 다른 디랙토리에 있었는데 cd를 어떻게 할지 몰라서 그냥 모든 파일을 pi 폴더에 넣고 실행했다. 참고: frogbam07.tistory.com/1 라즈베리파이 프로그램자동시작 라즈베리파이에서 재부팅시에 프로그램을..

라즈베리파이에 SQL 설치 및 외부 접속 허용

MySQL을 설치한다. MySQL을 실행하면 다음과 같이 나오면서 MariaDB가 실행되는데 다음과 같이 use mysql을 치면 바꿀수있다. blog.naver.com/wlsdml1103/221159758141 [라즈베리파이]7. MySQL DB 설치 및 접속하기 안녕하세요. 이번 시간에는 라즈베리파이에 MySQL DB를 설치하여 연동하는 방법에 대해 알아보도록 ... blog.naver.com gusdnr69.tistory.com/83 라즈베리 파이 - Mariadb(Mysql) 설치 및 외부접속 허용 기존에 maria db를 설치하셔야 합니다. sudo apt-get update sudo apt-get install mariadb-server 위 명령어로 설치합니다. sudo mysql use my..

Software Study/SQL 2021.03.25
728x90