목록2021/03 (38)
hmk run dev
웹의 기본 동작방식 웹이 어떻게 우리에게 보여줄까? 웹은 요청과 응답으로 이루어져 있다 클라이언트가 서버에게 우리가 보기위한 어떤 데이터를 만들어 주는 친구 클라이언트 요청 서버는 요청한 정보를 응답 서버에서 클라이언트로 전달해주는 형식 - JSON 키에 대응하는 어떤 값이 키쌍( : )으로 이루어진 데이터 타입 서버리스란? 서버리스란? 서버를 내가 만들필요가 없다는 말 서버는 있다! 이미 누가 잘 만들어 놓은 서버를 빌려다가 쓰는 것 자바스크립트 ES6문법 let과 const는 블록 안에서 유효 (블록 스코프) / {} var는 함수 단위로 유효 / function = =는 할당을 뜻합니다. 어떤 변수에 값을 할당할 때 써요. == ==는 등차입니다. 유형을 비교하지 않는 등차예요. 변수 값을 기반으로..
브루트포스라는 개념에 대해서 처음 알게됐다.. 개인적인 생각이지만 1을 계속 더해서 탐색하는 방법이 비효율적이라고 느껴졌지만 다른 문제나 브루트포스밖에 쓸 수 없는 문제에선 거의 유일한 해결방법이지 않을까? 라고 생각했다스라는 개념에 대해서 처음 알게됐다.. 개인적인 생각이지만 1을 계속 더해서 탐색하는 방법이 비효율적이라고 느껴졌지만 다른 문제나 브루트포스밖에 쓸 수 없는 문제에선 거의 유일한 해결방법이지 않을까? 라고 생각했다 정답코드 N = int(input()) # 1 M = 666 # 667 while(N): # 브루탈포스 완전 탐색 if '666' in str(M): # N -= 1 # M += 1 # 667, 668 , 1000 , 1666 ,1667 # M 은 if 문의 영향을 받지 않는다..
이번 문제는 queue 정렬의 기초를 확인하는 문제 같았다 조건문을 통해서 직관적으로 정렬 관련 기능들을 코드로 작성했다 from collections import deque import sys input = sys.stdin.readline T = int(input()) stk = deque([]) for i in range(T): c = input().split() if c[0] == 'push': stk.append(c[1]) elif c[0] == 'pop': if len(stk) > 0: print(stk.popleft()) else: print(-1) elif c[0] == 'empty': if len(stk) == 0: print(1) else: print(0) elif c[0] == 'fr..
항해를 시작한 지 이제 2주 차.... 알고리즘이란 녀석을 만나게 됐다 먼저 이름부터 무서운 알고리즘의 사전적 의미를 살펴보면 알고리즘(algorithm)은 주어진 문제를 논리적으로 해결하기 위해 필요한 절차, 방법, 명령어들을 모아놓은 것입니다. 넓게는 사람 손으로 해결하는 것, 컴퓨터로 해결하는 것, 수학적인 것, 비수 학적인 것을 모두 포함한답니다. 흠... 그런데 이걸 왜 배워야 해??라는 의문점이 들지 않을 수 없었다 일단 예체능 쪽으로 전공을 택해서 수학이랑은 거리가 멀었던 나라... 사실 접근하고 싶지도 않았다 :( ( 사실 수학은 컴퓨터가 다 해준다 ^^..... ) 그래서 알고리즘을 배워야 하는 이유를 찾아봤다 크게 4가지로 보였는데 - 좋은 프로그램을 만들기 위해 - 프로그램을 평가하기..
www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 정답코드 import math def IsPrime(num): #소수인지 판별하는 함수 a = int(math.sqrt(num)) # 루트2 루트3 루트4(2) 루트 5 루트 6 if num == 1: return False else: for i in range(2, a+1): if num % i == 0: return False return True Num_list = list(range(2,24691..
################# # 1을 방문했을 때 2,5,9를 스택에 넣어준다 # 맨처 # 위의 그래프를 예시로 삼아서 인접 리스트 방식으로 표현했습니다! graph = { 1: [2, 5, 9], 2: [1, 3], 3: [2, 4], 4: [3], 5: [1, 6, 8], 6: [5, 7], 7: [6], 8: [5], 9: [1, 10], 10: [9] } # 1. 루트 노드를 스택에 넣는다. # 2. 현재 스택의 노드를 빼서 visited에 추가한다 # 3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드를 스택에 추가한다. # 4. 2부터 반복한다 # 5. 스택이 비면 탐색을 종료한다 def dfs_stack(adjacent_graph, start_node): #그래프, 노드 stac..
항해99시작 전주부터 일사천리로 빠르게 조를 편성받았고 바로 4일동안 프로젝트를 완성시켜야 하는 미션이 내려졌다. 프로젝트를 준비면서 서버사이드 렌더링, 진자템플릿 jwt로그인 기능 들을 동시에 배우고 구현해야 했으므로 정규코딩시간 아침 9시부터 저녁 9시까지의 시간도 모잘라 하루에 15시간 정도의 코딩을 했었던 것 같다. 팀으로 개발 프로젝트를 해보는 것은 역시 처음이였지만 얼떨결에 팀장도 맡게 되었다 작은 프로젝트지만 어떻게 효율적으로 프로젝트를 제작하는지 혹은 어떤식으로 팀원들에게 지치지 않고 동기부여를 해야할지 나름대로 고민이 깊었고 평소 인상깊게 읽었던 데일 카네기 인간관계론을 다시 읽으며 코딩과는 별개로 팀원들과 좋은 관계를 형성하려고 노력했다. 사전 준비기간에 배운 정보와 새롭게 얻은 정보를..
DFS = Depth First Search = 깊이 우선 탐색 최대한 깊이 들어가본다 BFS = Breadth First Serch = 넓이 우선 탐색 최대한 넓게 본다 미로를 예로 들면, DFS는 틀린길일 지라도 최대한 깊게 들어가서 길이 없는걸 확인하고 돌아온다. BFS는 끝까지 들어가는게 아니라 확인하고 나서 다른길로 들어간다. www.youtube.com/watch?v=-wsYtm0x3nw&t=301s 컴퓨터에서는 어떻게 쓰일까? 트리라고 불리는 구조를 볼 수 있는데 아래를 보면 쉽게 이해 할 수 있을 것이다. 1. 루트 노드부터시작 2. 현재 방문한 노드를 visited에 추가 3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드에 방문한다 4. 2부터 반복한다FS = Depth Fir..