분류 전체보기 201

[Python] 리트코드 583. Delete Operation for Two Strings

https://leetcode.com/problems/delete-operation-for-two-strings/ Delete Operation for Two Strings - 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 먼저 word1이랑 word2에서 공통된 알파벳들을 알아낸다. 공통되지 않은 알파벳들은 조작되어야 하는 알파벳이므로 word1과 word2의 각 length를 비교해 그 차이만큼 답으로 리턴한다. 공통된 알파벳을 가려내는데 고려해야 하는 사항..

알고리즘 2021.12.02

[JavaScript] 펼침 연산자 효과적으로 사용하기

지금까지 펼침 연산자를 일부 데이터를 수정하는 데에만 사용하고 있었다. const emp = { name: 'kim', age: 20, nick: 'bom' }; const setPerson(emp) { return [{ ...emp, age: 30 }]; } const newEmp = setPerson(emp); console.log(newEmp); // {name: 'kim', age: 30, nick: 'bom'} 하지만 펼침 연산자는 더 많은 용도로 쓸 수 있다. 1 첫 번째로 코드를 알아보기 쉽게 만들어준다는 것이 있다. const fruits = ['apple', 'banana', 'cherry']; const removeFruite = (fruits, willRemove) => { const..

JavaScript 2021.11.30

[Python] 프로그래머스: 여행경로 (이중배열 정렬)

https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr Caution. 만약 A에서 시작해서 갈 수 있는 공항이 B와 C가 있다고 해보자. 여기까지만 봤을 때는 당연히 알파벳 앞 순서인 B공항으로 가야 하겠지만 B공항으로 갔을 때 그곳에서 갈 수 있는 다음 공항이 없다면 A에서 C로 갔어야 한다. 때문에 출발지가 동일한 티켓 중 도착지의 알파벳 순서가 앞이라고 해서 그 공항으로 무조..

알고리즘 2021.11.26

타입을 사용하는 이유

컴퓨터의 숫자 표현 방법 인류는 10진수를 사용하고 컴퓨터는 2진수를 사용한다. 컴퓨터도 같이 10진수를 사용하면 기계어를 다룰 때 더 편할 텐데 왜 그렇게 되었을까? 숫자를 디지털로 변환할 때 전기 신호의 On, Off로 데이터를 표현한다. 이때 10진수의 각 자릿수마다 램프를 할당하는 방식은 자원이 많이 소모되었다. 예를 들어 세 자리 숫자 593은 100의 자리 5, 10의 자리 9, 1의 자리 3 세 가지 숫자를 표현해야 한다. 그럼 각 자릿수 별로 0~9의 램프가 필요하니 총 27개의 램프가 있으면 0~999까지를 나타낼 수 있다. 이걸 더 줄이기 위한 방안으로 처음에 '7 세그먼트 디스플레이' 방법이 발명되었다. 사실 컴퓨터가 탄생하기 전에 발명된 방법으로 이 방법은 디지털시계의 숫자처럼 한 ..

프로그래밍 2021.11.24

[Python] 파이썬 알파벳 관련 내장함수 isalpha()와 swapcase()

https://leetcode.com/problems/letter-case-permutation/ Letter Case Permutation - 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 위 문제를 풀다가 사용하게 되었다. 이름에서도 알 수 있듯이 isalpha()는 해당 문자가 알파벳인지 아닌지 검사해주며 swapcase()는 소문자는 대문자로 대문자는 소문자로 바꿔준다. 알고리즘을 풀 때 아스키코드 함수 ord()를 이용해 알파벳을 판별하고 소문자와 대문..

알고리즘 2021.11.20

[Python] 트리 탐색 알고리즘: 전위 순회, 중위 순회, 후위 순회

https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%A6%AC_%EC%88%9C%ED%9A%8C 트리 순회 - 위키백과, 우리 모두의 백과사전 전산학에서 트리 순회(Tree traversal)는 트리 구조에서 각각의 노드를 정확히 한 번만, 체계적인 방법으로 방문하는 과정을 말한다. 이는 노드를 방문하는 순서에 따라 분류된다. 여기서 설명하는 ko.wikipedia.org 현재 노드를 몇번째에 방문하느냐로 전위, 중위, 후위가 정해진다고 생각하면 편하다. 전위 순회(preorder) (=깊이 우선 순회(depth-first traversal)) 노드를 방문한다. 왼쪽 서브 트리를 전위 순회한다. 오른쪽 서브 트리를 전위 순회한다. def preorderTraversal(self,..

알고리즘 2021.11.19

#7 IP 프로토콜

01 네트워크 계층의 기능 ▷ 주요 기능 - 라우팅 - 혼잡 제어 - 패킷의 분할과 병합 1. 연결형 서비스와 비연결형 서비스 ▷ 비연결형 서비스 - 신뢰성 낮음 -> 자체적으로 오류 제어와 흐름 제어 더 많이 수행해야 함 - 패킷이 서로 다른 경로로 전달됨 -> 순서 재조정기능 필요 - ex) IP 프로토콜, UDP ▷ 연결형 서비스 - 상대적으로 신뢰성 높음. 연결 미리 설정하여 송신 - ex) TCP * UDP와 TCP는 둘 다 IP 프로토콜 위에서 동작하는 전송 계층 프로토콜이지만 UDP는 비연결형, TCP는 연결형 서비스 2. 라우팅 - 가상 회선 방식을 사용하는 연결형 서비스 - 모든 패킷 동일 경로 거침, 패킷 전달 순서도 일정. - 비연결형인 데이터그램 - 연결 설정 과정 없어 고정 경로 ..

네트워크 2021.11.14

[Python] 프로그래머스: 베스트앨범(딕셔너리 활용)

https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr import collections def solution(genres, plays): answer = [] # 1 sumOfGenres = collections.defaultdict(int) # 장르별 총 재생 횟수 playsListDict = collections.defaultdict(list) # 장르별로 나눠서 재생횟수와 인덱스 리스트로 저장 # 2 fo..

알고리즘 2021.11.09

#6 데이터 링크 계층

01 데이터 링크 계층 프로토콜의 기초 a) 점대점: 1:1 방식. 라우팅 과정 없이 전달. b) 멀티 드롭: 하나의 호스트-다수의 호스트. 여러 호스트 중 목적지 호스트 지칭하기 위한 주소 개념 필요 1. 프레임의 종류 ▷ 정보 프레임: 상위 계층에서 보낸 데이터 + 프레임의 순서 번호 + 송수신 호스트의 주소 정보 ▷ 긍정 응답 프레임: 수신했다는 의미로 긍정 응답인 ACK프레임 회신 ▷ 부정 응답 프레임: 부정 응답인 NAK프레임 회신 2. 오류&흐름 제어가 없는 프로토콜 - 단방향, 전송 오류가 없는 물리 매체, 무한 개의 수신 버퍼 -> 이 세 가지가 적용된다면 오류나 분실이 없기 때문에 흐름 제어가 필요 없다 3. 오류 제어가 없는 프로토콜 - 단방향, 전송 오류가 없는 물리 매체 -> 버퍼가..

네트워크 2021.11.07

[Python] 리트코드 309. Best Time to Buy and Sell Stock with Cooldown

https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/ Best Time to Buy and Sell Stock with Cooldown - 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 이 문제는 [121. Best Time to Buy and Sell Stock] 이랑 [122. Best Time to Buy and Sell Stock II] 의 다음 단계라고 할 수 있다. 이..

알고리즘 2021.10.27