728x90

프로그래밍 47

[Linux] scp, sftp - 로컬과 서버 간 파일 전송, 서버 간 파일 전송

프로젝트를 하나 하고 있는데 이미지 전송을 서버끼리 할 필요가 있어서 적용해본 김에 정리합니다. vscode에서 drag and drop으로 옮기거나, filezilla 등의 gui 툴을 이용할 수 있지만 cli가 적응하면 훨씬 편하고 vscode 같은 경우엔 전송 속도가 너무 느려서 불편합니다. command를 알아보고 테스트하면서 깨달은 바를 나름대로 정리했습니다. 잘못된 정보가 있을 경우에는 댓글로 알려주세요! [참고] 제가 테스트한 환경은 local은 windows os이고, key파일을 통해 linux 서버에 접속하도록 되어 있습니다. 이 글에서는 파일 전송 명령어를 정리해놓은 것으로 자세한 개념정리 블로그는 아래에 링크 달아두겠습니다. https://nhj12311.tistory.com/76 ..

[python] getter, setter, property, decorator 정리

_로 시작하는 변수 (getter, setter) (참고: https://www.daleseo.com/python-property/) : 외부에서 직접 접근이 어려운 변수 (클래스 인스턴스의 내부 데이터를 보호하기 위함) class Person: def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.set_age(age) def get_age(self): ## getter return self._age # 외부에서 직접 접근을 하지 못하고, getter를 통해서만 가능 def set_age(self, age): ## setter if age < 0: raise Va..

[백준] 문제 입력 형식 정리 (python)

백준이 프로그래머스나 리트코드에 비해 짜증나는 부분은 인풋이 들어가는 형태도 고려해줘야 한다는 점이다. 오랜만에 백준으로 문제를 풀려니까 입력을 어떻게 할지부터가 난관이어서 입력 형식을 정리해보고자 한다. (언어는 파이썬) 백준 예제 입력은 위와 같이 들어올 때가 종종(아니 대부분) 있다. 그럼 \n으로 split을 하면 되지 않나? 하는데 왜인지 모르게 계속 오류가 났다. 공백 기준으로 해도 똑같은 에러가 계속 발생한다. (나 이전까지는 어떻게 해온 거지..머리에 든 게 없는 것을 겸허히 받아들이고 정리하기로 했다..) 위의 에러가 발생하는 이유는 애초에 input이라는 함수 자체가 \n이 들어오면 아예 입력을 마치는 것처럼 동작하기 때문이다. 따라서 여러 개의 입력값을 받기 위해서는 반복문을 활용해야..

[python] 프로그래머스 - K번째 수

https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 문제 설명 정수배열 array의 i번째 수부터 j번째 수까지 잘라, sub-array를 만든다음 정렬하여 K번째 수를 출력하는 문제. i,j,K는 리스트 형태로 주어지며, commands 배열은 위의 리스트를 포함한 이중 리스트 형태로 주어진다. 문제 접근 및 풀이 여기서 주의할 점은 i번째 수라는 것은 배열의 인덱스 i를 얘기하는 것이 아니라는 점이다. 정말 몇 번째 수냐는 것을 의미하기 때문에 제로 베이스 인덱스인 경우에는 ..

[python] 프로그래머스 - 주식가격

https://programmers.co.kr/learn/courses/30/lessons/42584# 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 문제 설명 스택을 사용해서 주식 가격이 떨어지지 않은 기간을 기록하는 문제. (자세한 설명은 프로그래머스 페이지 참고 바람) 문제 접근 및 풀이 이는 이전에 풀었던 리트 코드 문제와 매우 유사하다. 다만 리트 코드 문제에서는 증가점을 추적하는 것이라면 여기서는 감소점을 추적한다. 따라서 주식가격이 non-decreasi..

[python] leetcode 739. Daily Temperatures

https://leetcode.com/problems/daily-temperatures/ 문제 설명 매일의 화씨 온도 리스트 T를 입력받아서, 더 따뜻한 날씨가 될 때까지 며칠을 더 기다려야 하는지 리스트로 리턴하라. 문제 접근 및 풀이 [1st Try] - 투 포인터 1) 현재를 가리키는 포인터를 left, 미래를 가리키는 포인터를 right으로 설정. 2) 미래의 기온이 현재의 기온보다 높지 않다면 right 포인터를 한 칸 옮긴다. 3) 미래의 온도가 현재의 온도보다 높다면 결과가 되는 리스트에 right과 left의 차이를 append하고, left 포인터를 한 칸 이동, right 포인터를 left의 바로 다음 칸으로 이동시킨다. 4) left가 마지막에서 두번째 원소를 가리킬 때까지 반복한다...

[python] leetcode 316. Remove Duplicate Letters

https://leetcode.com/problems/remove-duplicate-letters/ 문제 설명 주어진 문자열에서 중복된 문자를 제외한 후 사전식 순서가 가장 작은 문자열을 리턴하라. (즉, 원래 문자열에서의 문자 순서를 완벽히 무시할 수는 없다는 뜻. 중복조합처럼 자리를 정해주는 식으로 생각하면 좀 더 수월할 듯하다) 문제 접근 및 풀이 [1st try] 1) 중복을 제거한다는 것은, 각 글자가 있을 자리를 정해준다는 것 → 원래 있던 자리를 무시하는 게 아님 2) 사전식 순서로 가장 작은 것을 리턴해야하는 것 → 쉽게 생각하면 가장 작은 글자 앞으로, 가장 큰 글자 뒤로 → 그러나 문제가 되는 점은 원래 문자열에서의 각 글자의 자리는 보존되어야 한다는 점 → 뚜렷한 자료구조는 생각나지 ..

[python] leetcode 20. Valid Parentheses

https://leetcode.com/problems/valid-parentheses 문제 설명 괄호로 된 입력값이 올바른지 판별 (기본기 점검으로 좋은 문제) 문제 풀이 접근 1) 각 여는 괄호는 짝이 맞는 닫는 괄호가 있다 2) 닫는 괄호의 순서는 여는 괄호의 순서와 반대로 이루어져야 한다. 가장 마지막에 오는 여는 괄호는 가장 처음에 오는 닫는 괄호와 만나게 되고, 이런 패턴이 계속 반복된다. → 스택으로 접근 (LIFO) → 여는 괄호는 스택에 넣고, 닫는 괄호를 만나면 pop해서 짝이 맞는지 대조하는 방식 → 짝이 맞는지 대조하는 데에 편리한 자료구조는 딕셔너리 문제 풀이 class Solution: def isValid(self, s: str) -> bool: parentheses = { "(..

[python] leetcode 148. Sort List

https://leetcode.com/problems/sort-list Sort List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com - task: 연결리스트 sort - 제약조건: 시간복잡도 O(nlogn), 공간복잡도 O(1) - 고려해야할 사항: 연결리스트로 주어진다는 점, 시간복잡도가 O(nlogn)이라는 점 - 접근방법 1) 제약조건을 고려했을 때 안정적으로 O(nlogn)의 시간을 보장하는 병합정렬을 활용하자. 2) 병합정렬은 중간 지점을 파악하..

[파이썬 머신러닝 완벽가이드] Chap2. 사이킷런으로 시작하는 머신러닝

본 포스트는 "파이썬 머신러닝 완벽가이드" 책을 공부하고 정리한 글입니다. 아나콘다 환경을 설치한다면 사이킷런은 별도로 설치할 필요가 없기 때문에 colab 환경에서 실습을 진행하는 본 포스트에서는 별도의 패키지 설치는 하지 않겠습니다. 실습 colab notebook: colab.research.google.com/drive/1fDmXFwxTpDEGEbBA6Cu4T6QFbXz4UfSC?usp=sharing 1. 사이킷런 기본 모듈 설명 - sklearn.datasets: 사이킷런에서 자체적으로 제공하는 데이터셋을 생성하는 모듈 → 솔직히 실습용 데이터셋 수준이기 때문에 많이 쓰이지는 않습니다. iris 등의 데이터셋이 있습니다. - sklearn.tree: 트리 기반의 ML 알고리즘을 구현한 클래스를 ..

728x90