전체 글
-
프로그래머스 - 보행자 천국Problem Solving/Programmers 2020. 8. 26. 21:55
https://programmers.co.kr/learn/courses/30/lessons/1832 코딩테스트 연습 - 보행자 천국 3 3 [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 6 3 6 [[0, 2, 0, 0, 0, 2], [0, 0, 2, 0, 1, 0], [1, 0, 0, 2, 2, 0]] 2 programmers.co.kr 이런류의 문제는 dp로 n^2 풀이가 가능하다 다만 차의 방향상태를 나눠서 저장해준다. dp[i][j][0] = i,j에서 차가 오른쪽으로 갈 수있는 경우의 수 dp[i][j][1]= i,j에서 차가 아래로 갈 수있는 경우의 수 그 후 city_map이 0이냐 1이냐에 따라 다르게 처리를 해준다. 0인 경우 : 현위치에서 위에서 오는 경우의 수 왼쪽에서 ..
-
백준 BOJ 4752 - HTML 에디터Problem Solving/BOJ 2020. 8. 23. 21:10
부분문자열의 끝(e)까지 열려있는 태그를 저장해둔다. 이때 다음의 경우에대해 예외처리를 해준다. 1.부분문자열 안에 여는태그 닫는태그 둘다있는경우 2.부분문자열 안에 여는태그만 있고 닫는태그가 없는경우 3.부분문자열 안에 여는태그가 없고 닫는태그가 있는경우 부분문자열까지의 (b까지) 태그 관리 = v 부분문자열 안의 태그관리 = v2 1번의 경우 - v2가 0보다 큰경우이다. v2를 pop_back 해준다. 2번의 경우 - v2에 태그를 추가해준다. 3번의 경우 - v2가 0인 경우이다 이때의 경우를 cnt++ 해준다. 그 다음 부분문자열까지의 여는태그의 닫는태그 출력시 cnt를 이용해 이미 닫은태그는 출력하지 않는다. 그후 저장된 태그들을 순서에 맞게 출력해준다. 1. 부분문자열까지 여는태그 출력 2...
-
백준 BOJ 5052 - 전화번호 목록Problem Solving/BOJ 2020. 8. 18. 22:16
테스트 케이스가 50개이고 주어지는 전화번호의 수가 최대 10000개이다. O(N^2)의 풀이는 10000x10000x50 = 5억 으로 시간초과 날것이다. 그렇다면 nlogn 혹은 n으로 풀어야한다. 완탐인가 싶지만 곰곰히 생각해보면 정렬(nlogn) 이후 o(n)으로 풀 수 있다. 먼저 문자열들을 알파벳순으로 정렬한다. (만약 133과 13이 있다면 13-> 133순서로 정렬이됨) 그 후 내 다음 순서에오는 문자열하고만 포함관계가 성립하는지 판별한다. 즉 i번째 문자열이 i+1번째 문자열에 포함이된다면 그대로 NO로 끝나게되고 포함이 되지않는다면 i+2번째 이후의 모든 문자열에 포함이 되지 않는다. 123456789101112131415161718192021222324252627282930313233..
-
스칼라 서브쿼리, 연관 서브쿼리 동작원리 및 실행순서Web/Backend 2020. 8. 10. 01:04
join을 쓸때도 많지만 join보다 서브쿼리를 사용해야 할때가 있다. 그 중 select절에서 서브쿼리의 실행순서가 궁금해져서 포스팅하게 되었다. 먼저 서브쿼리의 명칭은 다음과 같다. select 절에 있는 서브쿼리 - 스칼라 서브쿼리 from 절에 있는 서브쿼리 - 인라인뷰 where 절에 있는 서브쿼리 - 서브쿼리 where 절에 있는 서브쿼리는 당연히 메인쿼리가 실행되기전에 수행된다. 반면 스칼라 서브쿼리의 동작 원리는 다음과 같다. 1. 메인쿼리를 수행한 후 스칼라 서브쿼리에 필요한 값을 제공한다. 2. 스칼라 서브쿼리를 수행하기 위해 필요한 데이터가 들어있는 블록을 메모리로 로딩한다. 3. 메인쿼리에서 주어진 조건을 가지고 필요한 값을 찾는다. 그리고 입력값(main query에서 주어진 값)..
-
Vue 라이프 사이클Web/Frontend 2020. 8. 4. 23:56
Vue도 일종의 인스턴스이기 때문에 Lifecycle(생명주기)를 갖는다. Vue의 인스턴스가 생성되고 사라지기까지 사용자가 그 과정의 단계에서 로직을 수행할 수 있는 Life Cycle Hook을 제공한다. Hook의 종류는 다음과 같다. beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroyed (이해하기전 참고 : routes는 경로와 컴포넌트으로 이뤄진 컬렉션이다. 실제 이 맵을 보고 라우터가 경로에 따라 그에 맞는 컴포넌트를 렌더링한다.) 1. beforeCreate - vue 인스턴스가 생성된 직후 호출되는 hook data, methods가 정의되어 있지 않고, DOM과 같은 화면요소에도 접근할 수..
-
JPA 사용법 차근차근 알아보기(1) - Entity, saveWeb/Backend 2020. 7. 28. 21:03
엔티티 매핑 @Entitiy - JPA를 사용해 테이블과 매핑할 클래스로 지정하는 어노테이션. - 기본 생성자가 반드시 필요. @ Table - 엔티티와 매핑할 테이블 지정하는 어노테이션. - name : 테이블명 지정할 때 사용. (default는 엔티티명 , Table(name="테이블명")와 같은 형식) 기본키 매핑 기본키를 할당하는 방법으로는 두가지가 있습니다. - 직접할당 : @Id (@Id로 지정한 id 필드에 Set메소드로 직접 할당) - 자동생성 : @GeneratedValue을 추가적으로 작성. 데이터베이스가 자동으로 할당해주는 방법. 4가지 전략이 존재 IDENTITY : 기본 키 생성을 데이터베이스에 위임하는 방법 (데이터베이스에 의존적) - 주로 MySQL, PostgresSQL, ..
-
Vuex의 Store 이해하고 사용해보기 (로그인 토큰 저장)Web/Frontend 2020. 7. 24. 13:50
vuex - vue 전역에서 사용할 전역변수를 관리해주는 라이브러리 store - 전역변수 state - 값을 저장하는 객체 getters - state의 값을 반환하는 함수, computed 속성과 매칭되는 기술요소 actions - mutations 에 값을 보내는 함수 mutations - setter , state의 값을 변경하는 함수 computed 속성이란. 기본적으로 getter역할 , 캐싱된 데이터가 있다면 즉시 반환. filter(), reverse() 등의 추가적인 계산 로직이 들어갈 때 장점이 발휘된다. (watch와의 차이점 : watch 속성은 감시할 데이터를 지정하고 그 데이터가 바뀌면 이런 함수를 실행하라는 방식 반면 computed는 호출할때 실행) import { mapAc..
-
백준(BOJ) 2517 달리기Problem Solving/BOJ 2020. 7. 17. 18:51
sum함수에서 s~e 까지의 합 = tree[node] 구하고자하는 범위 l~r 먼저 실력을 등수로 매핑을 해야한다. 실력의 범위가 1 이상 1,000,000,000 이하라서 10억 배열을 선언할 수 없기 때문에 그 후 등수를 기준으로 세그트리를 활용한다. 트리를 0으로 세팅후 나의등수 p 보다 작은 1~p-1의 구간합을 구한다. 이때 구한 값이 내가 앞지를 수 있는 선수의 숫자이다. 그 후 등수 p (==idx)를 1로 update 해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 5..