Python | itertools 활용하기 (product, permulations, combinations)
·
STUDY/파이썬
itertools — Functions creating iterators for efficient loopingThis module implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML. Each has been recast in a form suitable for Python. The module standardizes a core set...docs.python.orgPython으로 코딩테스트를 풀면서 한번쯤 마주하게 되는 itertools 라이브러리에 대해 정리하고자 한다. - Product데카르트 곱(cartesian product), 중첩된 for 문과 동일관계 대수의 pro..
프로그래머스 | 2021 KAKAO BLIND RECRUITMENT | 합승 택시 요금
·
ALGORITHM
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 코드import heapq# 다익스트라 알고리즘 def dijkstra(n, start, graph): # 최단 거리를 저장하는 배열 생성 dist = [float('inf')] * (n+1) dist[start] = 0 queue = [(0,start)] while queue: current_dist, node = heapq.heappop(queue) if current_dist > dist[node]: cont..
알고리즘 강의 | Do it! 알고리즘 코딩테스트 with Python - 다익스트라
·
ALGORITHM
08-4 다익스트라그래프에서 최단 거리를 구하는 알고리즘- 출발 노드와 모든 노드 간의 최단 거리 탐색- 에지는 모두 양수 다익스트라 알고리즘의 핵심이론1. 인접 리스트로 그래프 구현하기graph = [ [] for _ in range(n+1)] for n1, n2, w in fares: graph[n1].append((n2, w)) graph[n2].append((n1, w)) 2. 최단 거리 배열 초기화하기출발 노드 = 0, 이외의 노드는 = max 값 (충분히 큰 값)D = [ 100001 for _ in range(n+1) ]D[s] = 0 3. 값이 가장 작은 노드 고르기처음에는 출발 노드 4. 최단 거리 배열 업데이트 하기선택된 노드에 연결된 에지의 값을 보고 Min(선택 노드..
REACT | NAVER Cloud Platform 네이버 지도 API 활용하기
·
STUDY/리액트
지난 프로젝트에서 API를 활용했던 부분을 정리하려고 한다. 리액트 환경에서 네이버 지도 API를 불러와서 보여주고몇몇 좌표에 마커를 찍어 보여주는 기능을 개발했다. 일단 네이버 지도를 불러오는 기본 코드는 NAVER Maps API v3NAVER Maps API v3로 여러분의 지도를 만들어 보세요. 유용한 기술문서와 다양한 예제 코드를 제공합니다.navermaps.github.io공식 사이트에 나와있는 예시 코드를 참고했다. 내 코드import React, { useEffect, useRef } from 'react';import regions from '../data/regions';/* global naver */const NaverMap = () => { const mapElement = us..
프로그래머스 | 2021 KAKAO BLIND RECRUITMENT | 메뉴 리뉴얼
·
ALGORITHM
코딩테스트 연습 | 프로그래머스 스쿨개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!school.programmers.co.kr 내 코드from itertools import combinationsdef solution(orders, course): answer = [] # 코스 당 메뉴 가격 for length in course: new_course = {} # 각 주문당 순회를 돌면서 for order in orders: # 정렬 후 조합 계산 (중복 피하기 위함) order = ..
REACT | 처음 만난 리액트 - 6. State and Lifecycle
·
STUDY/리액트
1. State와 Lifecycle의 정의State(상태): 리액트 컴포넌트의 변경 가능한 데이터, javascript 객체렌더링이나 데이터 흐름에 사용되는 값만 state에 포함시켜야 함그렇지 않으면 불필요한 렌더링이 되어 성능이 저하될 수 있기 때문(관련 없는 값은 컴포넌트의 인스턴스 필드로 정의하면 됨)class LikeButton extends React.Component { constructor(props) { super(props); // 생성자 this.state = { liked: false }; ... }}state는 직접 수정할 수 없음 (하면 안됨)// state를 직접 수정 (잘..
REACT | 처음 만난 리액트 - 5. Components and Props
·
STUDY/리액트
1. Components와 Props의 정의Components리액트는 모든 페이지가 컴포넌트로 이루어져있고, 하나의 컴포넌트 또한 여러 컴포넌트를 조합하여 만들 수 있음어떠한 속성들을 input으로 받아서 그 속성에 맞는 React elementf를 반환함(React element는 가장 작은 빌딩 블록, 화면에 보이는 것을 기술함)Component와 Element의 관계는 Class와 Instance 개념과 유사함 Props컴포넌트에 전달할 다양한 정보를 담고 있는 자바스크립트 객체Component의 속성 e.g. Componenet가 붕어빵 틀이라면, Props는 속재료 2. Props의 특징Read-Only -> 값을 변경할 수 없다.컴포넌트를 엘리먼트로 변환하는 과정에서 속성이 변화한다면, 제대로..
REACT | 처음 만난 리액트 - 4. Rendering Elements
·
STUDY/리액트
1. Elements 의 정의와 생김새Elements의 정의the smallest building blocks기존 웹 개발에서 말하는 엘리먼트는 DOM Elements이다.화면에 나타나는 내용을 기술하는 자바스크립트 객체가 필요했음-> 처음에는 Drscriptor라고 부름하지만 최종적으로 나타나는 모습은 DOM Elements였기 때문에 Elements 라고 부르게 됨실제 브라우저의 돔에 들어있는 요소가 DOM Elements이고 리액트 가상 돔에 들어있는 것이 React Elements이다.결국 리액트 엘리먼트는 돔 엘리먼트의 가상 표현이 되는 것이고, 그렇기 때문에 리액트 엘리먼트에 비해 돔 엘리먼트가 더 많은 정보가 들어있고, 상대적으로 무겁다.--> 앞으로 엘리먼트는 리액트 엘리먼트를 말함 Ele..