분류 전체보기 720

[백준][Python] 17128 소가 정보섬에 올라온 이유.

먼가 세그트리를 쓸수있을 것 같았으나 그냥 dp문제ㅋㅋ import sys input = sys.stdin.readline # 소 N마리 N,Q = map(int,input().split()) A = list(map(int,input().split())) dp = [0]*N # 미리계산. for i in range(N): dp[i] = A[i]*A[i-1]*A[i-2]*A[i-3] Qs = list(map(int,input().split())) # 미리계산 ex_sum = sum(dp) for idx in Qs: for i in range(4): new_idx = (idx-1+i)%N dp[new_idx] = -dp[new_idx] ex_sum+=2*dp[new_idx] print(ex_sum)

[백준][Python] 11780 플로이드2

기본적인 플로이드 워셜 + 경로추적에 대한 알고리즘 일정지점 i부터 도착지까지 가는 모든 경로를 추적,출력 import sys input = sys.stdin.readline n=int(input()) m=int(input()) cities = [[float('inf') for _ in range(n+1)] for _ in range(n+1)] pre_node = [[0 for _ in range(n+1)] for _ in range(n+1)] for i in range(1,n+1): cities[i][i] = 0 for _ in range(m): a,b,c = map(int,input().split()) cities[a][b] = min(cities[a][b],c) # 이전노드 저장. pre_node[..

[백준][Python] 5624 좋은수

1차시 DFS 시간초과 import sys input = sys.stdin.readline def DFS(depth,start,sum_t): if depth==3: if arr[start]==sum_t: return True return for pre_num in arr[:start]: if DFS(depth+1,start,sum_t+pre_num): return True N = int(input()) arr = list(map(int,input().split())) # 앞에있는 수 3개의 합. DFS(중복가능) depth 3까지. cnt=0 for i in range(1,N): if DFS(0,i,0): cnt+=1 print(cnt) 2차시 누적합 메모리초과 import sys input = sys...

[자료구조] Segment Tree : 구간 연산 구간 변경

백준님의 블로그내용으로 공부한 것을 정리한 포스팅입니다. 세그먼트 트리.(Segment Tree) Intro 구간 l,r 이 주어졋을 때 A[l]~A[r]까지의 합 i 번재 수를 v로 바꾸기 A[i] = v 수행해야 하는 연산은 최대 M번. 1번연산하는데 O(N) 2번연산 O(1) 총 시간복잡고 O(MN) 2번 연산이 없다고 가정해봅시다. 수를 바꾸는 경우가 없기 때문에 합도 변하지 않습니다. 따라서 앞에서부터 차례대로 합을 구해놓는 방식으로 문제를 풀 수 있습니다. S[i] = A[1]+...+A[i] i~j까지 합은 S[j]-S[i-1] S[0] = A[0] for i in range(N): S[i] = S[i-1] + A[i] 여기서 2번연산을 하려면 수가 바뀔때마다 S를 변경해줘야 합니다. 가장 ..

[DNS] domain name syetem 우리는 쿼리를 어떻게 처리하는가?

DNS(domain name server) Domain name을 ip주소로 바꿔주는 시스템(서비스) IP로 통신하던 방식-> SRI-NIC에서 전세계의 IP와 도메인을 수집해서 유저는 그곳을 통해서 hosts파일을 받도록 바뀜(개인이 hosts파일을 관리하기에는 너무 소요가 많아서.) ->DNS가 고안됨. -> hosts파일에 domain name과 IP주소를 적어놓고 대응하는 방식 IP주소 없이 도메인 네임을 통해 우리는 원하는 웹 사이트로 갈 수 있음. 쿼리를 통한 매핑. DNS통신 구성 요소 다른 서버들과 메세지를 통해 소통하기 위한? DNS 서버에 질의 dev.taggle.kr A IN (Query name string : 질의를 하고싶은 대상. / Type : 어떤 데이터를 받고싶은지 (A는a..

[Browser] 웹 스토리지(local, session, cookie)

Web storage 웹 스토리지는 서버가 아닌 클라이언트에 데이터를 저장할수 있도록 하는 HTML5의 새로운 기능이다. WS API와 쿠키의 기능자체는 같지만 쿠키는 4KB, 웹스토리지는 5MB까지 가능한다. localStorage : 브라우저를 종료해도 데이터가 남아있는 저장소 sessionStorage : 브라우저를 종료하면 데이터가 소멸되는 저장소 localStorage 지속적으로 필요한 데이터(자동로그인) 등에 쓰인다. 저장 한도는 3가지 중 가장 높다. 사용자 현재 도메인의 localstorage에 접근해 localstorage의 setitem메서드를 사용하여 데이터를 추가합니다. localStorage.name="랄라라라라" localStorage['name'] = '랄라라라라' localS..

[HTML] meta tag

meta tag 란? 웹 페이지의 보이지 않는 정보를 제공. 페이지에 대한 설명, 제작자, 크롤링 정책 등. SEO는 search engine optimization으로 ,meta tag를 이용해 description, keywords, author, subject, classification등의 정보를 표기할 수 있으며, 검색엔진은 이런 정보를 적극적으로 활용한다. name은 메타요소가 어떤 정보의 형태를 가지고 있는지 알려주고 content는 실제 메타데이터의 컨텐츠이다. lang속성 지정해야하는 이유(스크린리더가 지정된 언어를 인지해서 읽음) 만약 lang속성이en이고 중간에 한글내용이 있다치면 span lang="ko"로 문자열태그 처리하면 한글로 읽어준다. / 인코딩 지정집합 UTF-8(한국어 ..

frontend/HTML 2021.08.02

렌더링이란? 그리고 렌더링을 최적화 할 방법들.

렌더링이란? 개발자가 작성한 문서를 브라우저에서 그래픽 형태로 출력하는 것. 주소창에 구글 검색 구글 서버로 찾아감 DNS(Domain name server)가 연결해줄 곳을 찾음(실제 서버가 어디있는지 알고있는 서버.) 서버로부터 HTML 파일을 받아 브라우저에 뿌려주는 과정. 로더가 서버로부터 전달 받는 리소스 스트림을 읽는다.(data인지 file인지 다운로드 할껀지..) 브라우저는 서버로부터 HTML 문서를 다운받고(W3C(world wide web consortium)의 명세에 따라 HTML해석) Rendering 엔진은 HTML 문서를 파싱해서 DOM tree를 만든다 그 다음 CSS를 파싱해 CSSOM tree를 만든다. DOM tree와 CSSOM tree를 결합해 렌더링 트리를 형성한다...

[백준][Python] 17845 수강과목

전형적인 0-1 냅색. dp로 풀었습니다. import sys input = sys.stdin.readline N,K = map(int,input().split()) dp =[[0]*(N+1) for _ in range(K+1)] times=[] grades=[] for _ in range(K): I,T = map(int,input().split()) times.append(T) grades.append(I) for class_no in range(1,K+1): for now_time in range(1,N+1): if times[class_no-1] > now_time: dp[class_no][now_time] = dp[class_no-1][now_time] else: # 지금시간에서 추가하는 과목의 ..