배포용 서버를 만들어보자! [1탄]
·
DevOps/서버 만들기
원래는 클라우딩 서비스 중 가장 유면한 aws의 ec2, rds, route53 등을 사용하여 배포하였습니다.하지만, ec2의 프리티어는 1년이라는 제한된 기간이 있고 성능이 그닥 좋지 않았기에 여러개의 프로젝트를 동시에 구동하기도 매우 어려웠습니다.그래서 프리티어말고 조금더 성능을 높여 사용해볼까? 라는 생각을 몇달 째 하다 그만 프리티어가 만료되었고,이 알람을 보지 못했던 본인은 8만원이라는 요금폭탄을 받게 되었습니다.....그래서 이참에 어차피 쿠버네티스도 공부해 볼겸 개발용 서버 PC를 만들어보자! 라는 생각을 하게 되었고 아주 가성비가 좋은 친구들을 알아보았습니다. 처음에 후보군에 올랐던 친구는 이놈입니다. 지금이야 ssd 가격이 많이 올라서 그렇지만 고민하던 당시만 하더라도 50만원 초반대에 ..
맥북 스크린샷 저장 위치 변경 방법
·
잡다한것
맥북에서는 command + shift + 3,4,5 등으로 화면 캡쳐 및 녹화를 할 수 있읍니다.하지만 Default 경로는 Desktop에 저장되며 이름 또한 “8시_18분_16초 2023-11-21 오전 9.22.12” 이렇게 지정된다.물론 저장되는 경로를 지정을 해줄 수는 있고 시간 순서로 정렬해서 보면 상관 없긴 하지만이 파일이 전체화면 캡쳐인지, 선택화면 캡쳐인지는 파일을 미리보기로 열어봐야 알 수 있으며 파일이름 또한 지저분하고 분류되지 않아 매우 지저분하게 보인다.그렇기에 이를 해결할 수 있는 방법을 찾아보다, apple script를 통해 서비스를 등록하면 가능하다는 사실을 알게 되었다.그러면 이제 어떻게 지정하는지 알아보자! Apple Script 제작먼저, 화면 캡쳐를 위..
[Q. 16] 두 수의 덧셈
·
코딩테스트/알고리즘
역순으로 저장된 연결 리스트의 숫자를 더하라. 두 수의 합을 연결 리스트로 만드는 문제이다. 먼저 역순으로 저장되어 있는 리스트의 숫자를 더할 수 있도록 숫자로 만들어준다. num1, num2 = [], [] while l1: num1.append(str(l1.val)) l1 = l1.next while l2: num2.append(str(l2.val)) l2 = l2.next num1.reverse() num2.reverse() num1, num2 = int(''.join(num1)), int(''.join(num2)) num = str(num1 + num2) 배열로 연결 리스트의 값을 받은 뒤 뒤집어서 합쳐준다. 그 다음, 두 숫자를 더한 결과 값을 num에 저장한다. 그 다음 결과 값을 다시 역순 ..
[Q. 15] 역순 연결 리스트
·
코딩테스트/알고리즘
연결 리스트를 뒤집어라. 재귀로도 뒤집을 수 있지만, 더 간단히 반복문으로 뒤집어 본다. 먼저 이전 node를 기억할 수 있는 prev를 설정한다. node = head prev = None 그 다음 node가 끝날 때 까지 아래 작업을 반복한다. while node: next = node.next node.next = prev prev = node node = next next 는 원래 node의 다음 노드를 가리킨다. 뒤집기 전 앞으로 나아갈 포인터를 저장하는 것이다. node.next를 이전 node로 변경한다. 즉 뒤집는 작업을 진행하는 것이다. 그 후, prev 노드를 현재 노드로 설정하고, node를 앞서 저장한 next 값으로 바꾸어 원래 리스트의 node.next로 진행한다. 이 작업이 다..
[Q. 14] 두 정렬 리스트의 병합
·
코딩테스트/알고리즘
정렬되어 있는 두 연결 리스트를 합쳐라. 연결 리스트의 정의는 앞의 문제와 같다. 여기서 리스트는 작은 숫자 순으로 정렬되어 있다. 이런 2리스트를 합치기 위해 여러 방법이 있지만 책에서는 재귀를 이용한 방법으로 깔끔하게 풀어 이를 구현하여 보았다. # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: if (not li..
[Q. 13] 팰린드롬 연결 리스트
·
코딩테스트/알고리즘
연결 리스트가 팰린드롬 구조인지 판별하라. # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next 위의 코드가 문제에서 제시한 연결 리스트이다. val 은 현재 노드의 값, next는 다음 노드를 가리키는 것이다. 먼저 연결 리스트를 팰린드롬인지 확인하기 위해서는 자료형을 변경해야한다. 파이썬에는 deque라는 자료구조가 있다. deque는 리스트와 같지만 append와 pop을 리스트 마지막이 아닌 처음에서도 할 수 있다는 특징이 있다. 먼저, 해당 연결 리스트를 deque 자료형으로 변경한다. queue = deque() w..