[Github] fork 사용하기(다른 사람의 repository를 내려받기)

1. 내 github에 추가할 상대 repository를 fork해오기(오른쪽 위에 포크모양 클릭) 2.fork해서 만들어진 내 github의 repository url을 복사 후 받아오기 (clone URL) 3. 원격 저장소 내 내부 저장소로 받아오기. git clone [Clone URL] 4. pull request작업 수행할 branch 생성 git checkout -b [branchName] 5. 원본 저장소를 원격 저장소에 추가. git remote add origin(branchname) [Clone URL] 6. 코드 수정 및 파일 추가 7. 수정사항을 add git add [fileName] 8.add 한 파일들을 commit git commit -sm "[commit mesagge]"..

GitHub&Git 2021.07.14 0

[자료구조] 파이썬으로 LRU cache O(1) 구현하기

LRU cache O(1) 캐시는 불필요한 통신을 줄이고 기민한 UX를 제공 DB과부하를 막음.(query결과 저장) Proxy, CDN(유저와 가까운 CDN node) 메모이제이션 OrderedDict이용 from collections import OrderedDict MAX_SIZE = 2 cache = OrderedDict() def get_user(user_id): if user_id in cache: cache.move_to_end(user_id) return cache[user_id] if len(cache) == MAX_SIZE: cache.popitem(last=False) cache[user_id] = fetch_user(user_id) return cache[user_id] last=F..

[알고리즘] SCC (Strongly Connected Component) 강한 연결 요소

강한 연결 요소(SCC) 무향 그래프에서 절단점이 존재하지 않는 그래프를 우리는 Biconnected component라고 부릅니다. 절단점이 없다면 그래프 상의 어떤 점을 삭제하더라도 임의의 두 정점은 서로로 가는 경로가 존재하게 됩니다. Biconnected Component Undirected Graph에서 절단점이 존재하지 않는 그래프 Strongly Connected Component 만약 그래프의 임의의 한 정점에 대해 다른 모든 정점으로 가는 경로가 존재한다면 그 그래프를 SCC(Strongly Connected Component)라고 한다. SCC(Strongly Connected Component)특징 같은 SCC내에서 뽑은 임의의 U, V 점에서 U->V 혹은 V->U의 경로(직/간접적..

[Java] Java의 main() 메서드

자바의 main() 메서드 Java 프로그램은 특정 순서로 실행되는 Java 명령의 시퀀스기 때문에 시작과 끝이 있다. Java 프로그램을 실행하려면 JVM에 프로그램 실행을 시작할 위치를 신호해야한다. Java의 모든 명령어(코드)는 Java 클래스 내에 위치해야한다. 클래스는 함께 속한 데이터와 명령어를 그룹화하는 방법이다. 따라서 클래스는 변수와 메서드를 모두 포함 할 수 있다. 변수는 데이터를 포함할 수 있으며, 메서드는 데이터에 대한 작업 집합(명령어)을 함께 그룹화한다. 자바 클래스 선언 Java 코드는 클래스와 동일한 파일 이름을 가진 파일에 있어야하며 파일 접미사로 끝나야한다. 즉 파일이 클래스 이름과 일치하는 파일에 있어야 Java SDK의 Java 컴파일러 또는 Java IDE 내부에서..

Java 2022.07.28 0

[SEMI] PIO 통신이란?

PIO 통신 Parallel Input Output : 평행 입출력 통신 I/O 상태를 전당하는 입출력 =E84 통신 : SEMI 규약으로 장비 간 제품 이동 시 사용 물류장비들을 조작하는 AMHS(Controller), Equipments 간 통신 I/O 8 bit로 통신 Active는 IB 장비들, Passive는 STK 혹은 EQP Active와 Passive 장비들 간의 이동을 시나리오에 따라 통신하는 과정. LR, UR, READY, BUSY, COMPLETE 등. [예시 영상](https://www.youtube.com/watch?v=6qPP4I5hx3Q&t=5s) Reference [Youtube 깹 tv](https://www.youtube.com/watch?v=6qPP4I5hx3Q&t=5s)

IOT 2022.07.12 0

[백준][Python] 14945 불장난

dp[층수][둘사이 거리]의 경우의 수로 계산. 거리가 그대로일 경우 둘(아래아래, 대각,대각) 거리가 줄경우 하나(대각아래) 거리가 늘경우 하나(아래대각) 거리가 0인경우는 그냥 배제 import sys input = sys.stdin.readline n = int(input()) dp = [[0]*(n+1) for _ in range(n+1)] dp[2][1] = 2 for i in range(3,n+1): for j in range(1,i): dp[i][j] = (dp[i-1][j]*2 + dp[i-1][j-1] + dp[i-1][j+1])%10007 sum_n = 0 for i in range(1,n): sum_n += dp[n][i] print(sum_n%10007)

백준 2021.09.01 0

[GitHub] 깃헙 잔디 사라졌을 때 당황하지 않고 복구하는 방법.

1.잔디 옵션이 프라이빗으로 바뀌어있는지 확인한다. => public으로 바꾼다. 2. 깃헙에 등록되어있는 메일이 바뀌어서 local git의 메일주소와 불일치 하게 되었는지 확인한다. => 깃 메일을 일치시키던가 깃헙에서 삭제한 메일을 다시 등록한다. 3. 특정레포의 강제푸시 혹은 merge로 commit기록이 전부 초기화 됐다!! 이러면 정말 눈물나지만 해결 방법이 있다. github api를 이용해 과거로 회귀하는것. 1. Access Token을 발급받는다. https://github.com/settings/tokens 에 가서 토큰 생성을 누르고 repo전체 선택 후 발급 받는다. 2. 강제 푸시 전 혹은 레포가 정상일 적 마지막 커밋 SHA값을 확인한다. curl -H "Authorizatio..

GitHub&Git 2021.07.25 0

[백준] 틀렸을 시 원인 분석.

틀렸습니다 : output이 틀렷을 경우. testcase 초기화를 잘해줘야함. 시간초과 : 시간복잡도 제한을 못맞췄을 경우. => 보통 추상화 알고리즘을 잘못썼거나, 변하지 않는 dp값을 여러번 계산했을 경우(계산값 저장을 하지 않는 경우), 내장함수 계산값을 저장해두지 않고 반복문마다 돌리는 경우 => 파이썬에서 어떤 값이 같은지 비교할 때 == 대신 is를 사용하면 안됨. ++list를 큐 또는 덱으로 사용하면 절대 안됨. 반드시 collection.deque를 써야함. 런타임 에러 : 실행 시 나타나는 type, index접근 등 에러, 재귀함수가 있는 경우에는 재귀 깊이 제한인 sys.setrecursionlimit(100000)을 써줘야함. 메모리 초과 : sys.setrecursionlimi..

practivceAlgorithm 2021.07.10 0

공식문서 모음

-firebase https://firebase.google.com/docs/auth/admin/errors Admin Authentication API 오류 | Firebase 다음은 Firebase Admin Node.js Authentication API에서 발생하는 오류 코드와 설명, 권장 해결 단계를 모두 포함하는 목록입니다. 오류 코드 설명 및 해결 단계 auth/claims-too-large setCustomUserClaims()에 제공된 클 firebase.google.com -react-router https://reactrouter.com/web/api/Redirect/to-string React Router: Declarative Routing for React Learn once, ..

webDeveloper 2021.06.01 0

[Git] Git Rebase로 Conflict 해결

협업을 진행하다보면 conflct가 당연히 발생합니다. PR을 밀어 넣었을 때 기존 코드와 내 코드가 비교되는 과정에서 다른 코드가 원본에 Merge되면 비교과정이 올바르지 않게 되기 때문에 conflict가 발생하는데 이는 3-way-merge 방법 또는 rebase를 이용해 해결이 가능하다. 3-way-merge : base + 내 branch + upstrem의 최신버전 rebase : 내 branch + rebase 한 내용 rebase는 말 그대로 re + base로 내가 머지하려는 브랜치가 갈라져 나온 branch의 base를 바꾸겠다는 것이다. 이 과정을 통해 내 코드는 새로이 만들어진 base와 코드 대사과정을 하게되므로 Merge하는데 문제가 없게된다. 원리는 내 branch가 지속적으로..

GitHub&Git 2022.10.02 0

[MarkDown] 특수문자를 특수문자로 입력하기

Symbol 뒤에 HTML Number를 붙혀주면 특수문자를 입력할 수 있다. Symbol HTML Number HTML Name Description ! ! exclamation point " " "\; double quotes # # number sign $ $ dollar sign % % percent sign & & &\; ampersand ' ' single quote ( ( opening parenthesis ) ) closing parenthesis * * asterisk + + plus sign , , comma - - minus sign - hyphen . . period / / slash : : colon ; ; semicolon > > greater than sig..

HTML 2022.07.25 0

[백준][Python] 1727 커플 만들기

일단 n을 무조건 수가 적은쪽으로 통일 시킨 후 dp로 각각 짝을 지어줬을 시 차이가 min인 값을 누적시킵니다. 앞인자는 수가 적은쪽의 인자고 뒤 인자는 수가 많은쪽의 인자입니다. m - (n - 1)은 수가 큰거에서 작은 것을 빼고 1을 더해준 값으로 선택할 수 있는 m쪽 인자의 index 범위를 뜻합니다. import sys input = sys.stdin.readline n, m = map(int, input().split()) boys = list(map(int, input().split())) girls = list(map(int, input().split())) if n > m: boys, girls = girls, boys n, m = m, n dp = [[0] * m for __ in r..

백준 2021.10.07 0

[알고리즘] sweeping-line 라인 스위핑을 통한 필터링

라인스위핑 스위핑 알고리즘이란? 특정 선이나 공간을 한쪽에서부터 쓸어버리는 식의 알고리즘. 일정 좌표, 축기준 정렬 한 뒤 일정 시점의 좌우 가장 가까운 두 점사이의 거리보다 멀리떨어진 점은 조사하지 않는 방식. 가지치기를 하겠다는 이야기다.(O(NlogN)) 아래는 2261번 문제에 대한 분할정복 풀이. import sys input=sys.stdin.readline INF=sys.maxsize # 두 점 사이의 거리를 구하는 함수 def dist(a,b): return (a[0]-b[0])**2+(a[1]-b[1])**2 def divide(start,end): # 점 하나면 버림 if start==end: return INF # 점 두개면 거리구해서 리턴 elif end-start==1: retur..

[Django] admin 페이지 커스텀하기

첫번째 장고 앱 작성하기, part 7 관리자 폼 커스터마이징 수정 폼의 필드를 재정렬해 작동하는 법을 본다. admin.site.register(Question) 를 아래와 같이 수정한다. from django.contrib import admin from .models import Question class QuestionAdmin(admin.ModelAdmin): fields = ['pub_date', 'question_text'] admin.site.register(Question, QuestionAdmin) 모델의 관리자 옵션을 변경해야 할 때마다 모델 어드민 클래스를 만든 다음, admin.site.register()에 두 번째 인수로 전달한다. 수십 개의 필드가 있는 폼에 관해서는 폼을 fi..

Django&Python 2021.08.27 0

[백준][Python] 16432 떡장수와 호랑이 : 백트래킹 설계.

checking을 어떻게 할것이냐? 그날 이떡을 먹었었다. 에 대한 체킹. 먹었었다면 굳이 다시 먹을 필요 없다. import sys input = sys.stdin.readline def DFS(cnt,dduks,yesterday): global answer if cnt == N: for d in dduks: print(d) exit() for dduk in days[cnt]: if dduk != yesterday and not ate[cnt][dduk-1]: ate[cnt][dduk-1] = True DFS(cnt+1, dduks + [dduk],dduk) N = int(input()) days = [] answer = [] for _ in range(N): m,*dduk = map(int, inpu..

백준 2021.08.22 0

[Python] 파이썬의 메모리 관리 : Garbage Collections

Python 의 Garbage Collection GC는 언제 사용되는가? 파이썬은 메모리관리에 reference counting과 garbage collection을 이용한다. reference counting : 참조 횟수가 0이 된 객체를 메모리에서 해제 garbage collection : 참조 횟수가 0에 도달할 순 없지만 reference cycle(순환참조)가 일어날 때. 엄밀히 말하면 reference counting 도 garbage collection의 한 형태. 레퍼런스 카운팅 모든 객체는 참조 당할 때 레퍼런스 카운터를 증가시키고 참조가 없어질 때 카운터를 감소시킨다. 카운터가 0이 되면 객체가 메모리에서 해제된다. sys.getrefcount()로 확인 가능. 순환 참조 간단한 예..

Django&Python 2021.08.19 3

[알고리즘] Cut Vertex, Cut Edge 단절 점, 단절 선 : sub-tree의 단절

Cut Vertex ( 절단점 찾기 ) Cut Vertex(절단점) 그래프의 절단점이란 해당 정점을 삭제했을 때 그래프가 두 개 이상의 그래프로 나누어 지는 점을 말합니다. 이 때 그래프는 항상 undirected graph입니다. 1) 직관적으로 절단점을 찾는 방법을 생각해 봅시다. (러프한 방법. 직접 삭제해본다. 섬나누기 or 연구소 같은 방법.) 느낌상 모든 정점에 대해 그 정점을 삭제한 후의 그래프를 먼저 따로 구합니다. 그 다음 DFS 혹은 BFS 로 몇 번만에 전체 그래프를 cover할 수 있는지를 보면 될 것 같습니다. 그러나 이 방식은 각 정점마다 알고리즘을 돌려야 하니 정점이 많아 질수록 매우 불리해 집니다. 2) 무향그래프의 DFS Spanning tree를 보면 cross edge가..

[백준][Python] 16163 #15164번 제보

기존 마나커 탐색에 1. 중심이 #이 아닐때(크기1짜리 펠린드롬) 2. 반지름 갱신시 #을 뺀 반지름의 크기만큼 펠린드롬수 추가 3. 범위 확장 시 확장된 범위가 #범위가 아니면 펠린드롬 추가 import sys input = sys.stdin.readline def manacher(string): n = len(string) a = [0] * n # i번째 문자를 중심으로 하는 가장 긴 팰린드롬 반지름 크기. c = 0 # 중심점(center) 초기화 r = 0 # 시작점에서 가장 먼 반경(펠린드롬 끝나는 인덱스중 가장 큰 값.) answer = 0 for now in range(n): if string[now] != '#': answer +=1 # i번째 문자가 now 아래쪽에 있는 문자를 중심으로 ..

백준 2021.08.18 0

[백준][Python] 1497기타콘서트

코드는 한방에 짰는데 1갯수 확인하는 코드에서 노래수만큼이 아니라 기타수만큼 반복문돌려서 7번 틀렸다.. import sys input = sys.stdin.readline from itertools import combinations # 기타 플레이 리스트 이진수로 바꿔서 set에 저장. N,M = map(int,input().split()) guitars = set() for _ in range(N): name,pos = input().split() bin_change='' for chr in pos: if chr=="Y": bin_change += '1' else: bin_change += '0' guitars.add(int(bin_change,2)) # 셋에서 0 제거하고 비었으면 -1출력후 종료..

백준 2021.07.31 0

[백준][Python] 1102 발전소

발전소 최솟값으로 키는 문제. 꺼져있으면 켜져있는 발전소중에 제일 싼 발전소로 선택해 키는게 상태값 최저가면 최신화. import sys input = sys.stdin.readline from collections import deque def make_electic(start,cur_cnt): queue = deque() dp[start] = 0 answer=float('inf') if target_cnt==0 or cur_cnt>=target_cnt: return 0 elif cur_cnt==0: return -1 else: queue.append([start,0]) while target_cnt > cur_cnt: # 한 순회에 하나씩 킬꺼임. circle_SIZE = len(queue) for ..

백준 2021.07.31 0

[CSS] img 에 filter로 색상 넣기

img{ -webkit-filter: opacity(.5) drop-shadow(0 0 0 gray); filter: opacity(.5) drop-shadow(0 0 0 gray); } 그림에 필터씌우는 코드. gray는 색상코드로 변경가능. opacity는 필터 두께 filter는 흐림이나 색상변형 등 이미지, 배경, 테두리 렌더링. drop-shadow(offset-x offset-y blur-radius color) filter 속성 /* SVG 필터를 가리키는 URL */ filter: url("filters.svg#filter-id"); /* 값 */ filter: blur(5px); filter: brightness(0.4); filter: contrast(200%); filter: drop..

CSS&Design 2021.07.01 0