전체 글

전체 글

    [프로그래머스] 소수찾기 / Python / 효율성 테스트

    ✔ 문제 설명 - 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. - 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.) ✔ 제한 조건 - n은 2이상 1000000이하의 자연수입니다. 아래는 처음 제출한 코드이다. 효율성 테스트에서 통과하지 못하고 시간초과. def solution(n): answer = 0 arr = [0] * (n+1) for i in range(2, n+1): if arr[i] == 1: continue for k in range(2, i+1): if i % k == 0: if i != k: arr[i] = 1 break else: answer += 1 for j in range(i, n+1, i)..

    [Vue.js] 네 번째 정리(props, emit)

    0. 부모와 자식 간에는 단방향 바인딩만 가능하다(단방향 데이터 흐름) -> why? 자식은 부모의 데이터에 접근하거나 데이터를 변경할 수 없어야 한다. (데이터 흐름이 꼬일 수 있기 때문이다) 단지 이벤트만 보낼 수 있다. 자식은 커스텀 이벤트를 방출하면 부모는 이벤트를 리스닝(@)하여 어떠한 행동을 한다(함수 실행 등) 1. props & emit - 분리된 상태의 부모, 자식 컴포넌트 간 긴밀히 소통해야 할 때가 있는데, 이때 필요한 것이 컴포넌트 통신. 즉 props와 emit이다. - 컴포넌트 통신 규칙은 각 컴포넌트가 독립성은 유지하면서 데이터 흐름이 규칙적이게 하기 위함 - props는 부모에서 자식으로 데이터를 전달하기 위해 사용 - emit은 자식이 부모에게 데이터를 전달하기 위해서 이벤..

    [Vue.js] Dynamic Route Matching(동적 라우트 매칭)

    해당 유저의 마이페이지에 url로 접근하는 경우 동일한 url 패턴을 보이게 된다. 예를 들어 /user/yeji 또는 /user/deokgi 처럼 비슷한 패턴의 url이 동일한 컴포넌트에 매칭되는 경우 동적 라우트 매칭을 사용한다. 동적 세그먼트는 콜론(:)부터 시작해서 작성하는데 예를 들었던 /user/yeji, /user/deokgi 에서 yeji, deokgi 처럼 바뀌는 부분이다. 나는 인스타 클론코딩을 할 때 유저 페이지에 동적 라우트 매칭을 사용했다. 아래는 인스타 클론 코딩에서 사용한 동적 라우트 매칭👇 // router- index.js에 경로 설정 Vue.use(VueRouter) const routes = [ { //dynamic route matching path:'/:usernam..

    [Vue.js] 세 번째 정리 (프로젝트 생성 초기 설정)

    지난 번까지 뷰에 대한 기본적인 것, 개념들을 공부했다면 이번엔 뷰 프로젝트를 직접 생성해봤다. [Vue 사용하기 전 초기 환경 설정] 1. 우선 node.js 설치 -> node.js는 무엇일까? 원래 javascript는 원래 웹 브라우저 환경에서만 동작하는데, 이때 node.js가 우리가 사용하는 컴퓨터 환경에서도 javascript를 사용해 개발할 수 있도록 만들어 주는 플랫폼이다. (node.js는 자바스크립트를 웹 브라우저 속에서만 사용되던 언어에서 범용 스크립트 언어로 탈바꿈 시켰다는 점에서 의미가 있다) -> node.js의 가장 큰 특징은 단일 스레드 모델, non-blocking 이라는 것 -> 노드 설치 후 버전 확인: node -v 2. npm (Node Packaged Module..

    [Vue.js] 두 번째 정리 (비동기, non-blocking, computed, watch)

    ✔ 둘째 날, Vue Basics - 배운 내용 정리 콜백함수를 쓸 때는 화살표 함수를 사용한다. json-server의 paginate 기능 사용 배열 합치는 방법 3가지 👇 1. concat() 2. spread 스프레드 : arr3 = [...arr1, ...arr2] -> 스프레드가 가장 빠르고 효율적임 3. push와 spread 사용 : arr4= arr.push(...arr2) Vue instance 생애주기👇 [Vue Instance Lifecycle Hooks] 뷰 인스턴스는 created -> mounted -> updated -> destroyed 순으로 생성됐다가 소멸되는 생애주기를 갖는다. non-blocking 하게 동작하는 코드 두 가지 1. axios 2. setTimeout..

    [Vue.js] Vue 시작하기 (directive 정리)

    첫째 날, Vue Intro el은 뷰 인스턴스의 속성이며 어떤 HTML 요소에 mount할 지를 결정하는 요소. data는 객체이며 MVVM 패턴에서 Model에 해당하는 것. 뷰인스턴스의 핵심이 된다. interpolation/ 보간법/ {{ }} => 인스턴스에 있는 데이터를 순수 문자열 형태로 보여줄 때 사용한다. methods는 함수들의 집합 syntactic sugar => methods 안에 정의된 함수에서 : function()은 생략할 수 있다. v-on: 는 ' @ '로, v-bind: 는 ' : '로 줄여서 숏컷으로 쓰기. v-text="message" 와 {{ message }}는 완전히 같음. v로 시작하는 요소들은 directive(디렉티브)는 엘리먼트에게 어떤한 행동을 하라고 ..

    0608_백준 1051번 : 숫자 정사각형/ 부르트포스 알고리즘/ Python

    [코드 구현] n, m = map(int, input().split()) arr = [list(map(int, input())) for _ in range(n)] res = 0 for i in range(n): for j in range(m): for k in range(n if n < m else m): # 행과 열 중 더 작은 것을 기준으로 정사각형 탐색 if i+k < n and j+k < m: # 주어진 인덱스 벗어나지 않게 if arr[i][j] == arr[i][j+k] == arr[i+k][j] == arr[i+k][j+k]: # 꼭짓점의 숫자가 모두 같은 지 확인 if res < k: res = k print((res+1)*(res+1)) [문제 출처] 백준 1051번 숫자 정사각형 : h..

    0529_백준 15684번 : 사다리 조작/ 완전탐색(Brute-Force)/ Python

    [문제 접근] - 브루트포스(완전탐색) 문제 - 사다리를 놓는 함수와 사다리를 놓은 후 모든 세로선이 자기 번호로 도착하는 지 확인하는 함수 두 가지로 프로그램을 짰다. [코드 구현] # 사다리에 가로선을 놓는 함수 def dfs(start, cnt): global res if cnt == min_cnt: if check(): res = cnt return for i in range(start, h): for j in range(n-1): # ij 위치에 사다리가 있지 않고, 전후로도 사다리가 없으면 if not ladder[i][j-1] + ladder[i][j] + ladder[i][j+1]: # 사다리 놓기 ladder[i][j] = 1 dfs(i, cnt+1) # 함수 재귀 끝나면 사다리 다시 빼..