전체 글

스파게티 코드라도 작성하고보자❗️
Frontend/HTML, CSS, JS

[Javascript] 캡쳐링, 버블링

div1 div2 div3 여기 div의 영역을 클릭하면 div의 이름이 담긴 alert 창이 나오는 이벤트 핸들러가 있다고 생각해보자. div1, div2, div3에 각각 동일한 핸들러를 바인딩했고, 사용자가 div3의 영역을 눌렀을 때 alert창에는 어떤 순서로 div 이름이 출력될까? 캡쳐링과 버블링은 쉽게 말해서 어떤 한 태그에서 이벤트가 발생하였을 때 자신을 포함한 부모 태그들까지 쭉 훑으며 겹치는 이벤트의 핸들러가 있는지 없는지 검사하는 것을 의미한다. 먼저 캡쳐링은 이벤트가 발생한 요소를 포함하는 부모 태그에서부터 이벤트 근원지인 자식 태그까지 검사하는 것을 의미한다. 그 과정에서 이벤트 캡쳐링 속성의 이벤트 핸들러가 있다면 핸들러를 수행한다. 버블링은 이벤트 발생 요소부터 요소를 포함하..

Frontend/HTML, CSS, JS

[Javascript / JQuery] 이벤트 리스너

Javascript 1. 인라인 이벤트 핸들러 (HTML에서 등록) 클릭 클릭 2. 이벤트 핸들러 프로퍼티 (Javascript에서 등록) document.getElementById("div1").onclick = function() { alert('안녕하세요'); } 단, 하나의 프로퍼티에 하나의 핸들러만 바인딩 할 수 있다는 단점이 있다. (인라인 이벤트 핸들러 방식은 여러 함수를 호출할 수 있다.) 3. addEventListener 메소드 // IE 9 이전 버전 document.getElementById("div1").attachEvent("click", openAlert); // IE 9 이후 버전 document.getElementById("div1").addEventListener("cli..

Frontend/HTML, CSS, JS

[CSS] 선택자

CSS 선택자 활용 일반 선택자 선택자명 선택 범위 표현식 전체 선택자 HTML 문서 내 모든 element * {} 타입 선택자 매칭되는 element 선택 h1, h2, h3 {} 클래스 선택자 class 속성 값과 매칭되는 element 선택 .className {} ID 선택자 id 속성 값과 매칭되는 element 선택 #idName {} 복합 선택자 선택자명 선택 범위 표현식 하위 선택자 하위 element 선택 (얼마의 깊이가 차이나든 하위에 있다면 모두 선택) E1 E2 {} 자식 선택자 직속 하위 element 선택 (바로 내 밑의 깊이에서만 선택) E1 > E2 {} 인접 형제 선택자 인접 형제 관계인 element 선택 (바로 내 뒤의 형제만 선택) E1 + E2 {} 일반 형제 선택..

CS/운영체제

blocking(블로킹) / non-blocking(논블로킹) / synchronous(동기) / asynchronous(비동기)

보통 블로킹&동기, 논블로킹&비동기가 쌍이다. 사실 블로킹과 동기, 논블로킹과 비동기는 비슷한 소리를 하고 있다. 단지 관점이 다르다. 블로킹/논블로킹은 제어권에 대해, 동기/비동기는 호출된 함수의 리턴에 주목한다. Blocking & Nonblocking 제어권이란 자신의 코드를 실행할 권리 정도로 보면 된다. Blocking Blocking은 A함수가 B함수를 호출할 때 제어권도 넘긴다. 제어권을 잃은 A함수는 자신의 코드를 실행하지 못하고, 반대로 B함수는 호출됨과 동시에 자신의 함수를 실행하게 된다. B함수가 신나게 자신의 코드를 다 실행하고 나면 리턴값과 함께 제어권을 다시 A함수로 넘겨준다. 그러면 그제서야 제어권이 생긴 A함수는 자신의 나머지 코드를 실행하게 된다. 이걸 함수 스택관점에서 보..

CS/알고리즘

[알고리즘] 순열, 중복순열, 조합, 중복조합, 부분집합

순열 ( nPr ) static int N, R; static int[] input, numbers; public static void permutation(int cnt, int flag) { // cnt: 직전까지 뽑은 수개수, flag: 뽑힌 수들에 대한 플래그 비트열 if(cnt == R) { System.out.println(Arrays.toString(numbers)); return; } // 입력받은 모든 수를 현재 자리에 넣어보기 for (int i = 0; i < N; i++) { if((flag&(1

문제 풀이/알고리즘

[백준] (11053번) 가장 긴 증가하는 부분 수열

문제 (11053번) 가장 긴 증가하는 부분 수열 링크 : https://www.acmicpc.net/problem/11053 사용 언어 : JAVA 내 생각 이 문제는 종만북에서 본 문제라서 어렵지 않게 풀 줄 알았는데 본지 너무 오래되어서 다 까먹고 책이랑 비교하며 풀 수 있었다.그런데 최근에 다른 백준 문제를 풀다가 다른 방법이 있다는 것을 알았다.(후에 포스팅 올릴 것...) 사실 둘이 탐색 방향만 다를 뿐 같은 아이디어라 해도 무방하다. 먼저 종만북의 알고리즘이다. S[0...n-1]을 차례로 탐색하며 S[start]보다 큰 S[next]를 찾고, 그 next에서 시작하는 lis의 길이에 1을 더하는 것이다. 재귀함수를 호출하며 메모이제이션을 적용하면 더 빠른 시간에 답을 찾을 수 있다. 이때 ..

CS/알고리즘

[알고리즘] 연속된 구간의 최대 합 찾기

* 본 게시글은 [알고리즘 문제 해결 전략] 도서를 참고하여 작성되었습니다. * 1. 무식(...)한 알고리즘 더보기 int fastMAXSum(int list[]){ int i, j; int N = 10, ret = MIN, sum = 0; for(i=0; i

모바일/안드로이드 스튜디오

[안드로이드 스튜디오] Activity VS Fragment (1)

* 본 게시물은 [핵심만 골라 배우는 안드로이드 스튜디오3 & 프로그래밍] 도서를 참고하여 작성되었습니다. Activity 액티비티는 컴포넌트를 더 높은 수준의 개념으로 끌어올린, 어플의 기능을 갖는 단일의 독립 실행형 모듈이다. 재사용성, 상호 운용성이 극대화되어있다. 그리고 하나의 사용자 인터페이스 화면과 그 기능에 밀접한 관련이 있다. EX) 한 일정 관리 어플에서 당일날 설정된 일정만 보여주는 화면 익월 달력을 보여주는 화면 일정을 설정하는 화면 등으로 이루어 진다면 Activity를 사용해 이것들을 하나의 기능적 모듈로 두고, 인터페이스 화면(이벤트 처리 포함)과 함께 관리할 수 있다. 그리고 액티비티끼리는 완전히 독립되어 있다. 따라서 액티비티 사이에 함수나 변수를 공유하는 것은 불가능하다. ..

문제 풀이/알고리즘

[백준] 카카오 코드 페스티벌 2018 예선, (15954번)인형들

문제 (15954)인형들 링크 : https://www.acmicpc.net/problem/15954 사용 언어 : JAVA 카카오프렌즈 스토어를 관리하는 브라이언은 어떠한 특정한 곳에 인형들을 배치하고자 하는데, 그곳에 인형들을 선택하는 방법은 다음과 같다. 먼저 비슷한 인형이 가깝게 위치하도록 서로 다른 N개의 인형을 종류당 한 개씩 일렬로 배치한다. 그 후, 선호하는 사람의 수의 표준편차가 최소가 되는, K개 이상의 연속된 위치에 있는 인형들을 선택하여 그들을 같은 곳에 배치한다. 위의 방법으로 인형들을 선택했을 때, 선택된 인형들의 선호하는 사람의 수의 표준편차를 구하여라. 입력 값 첫 번째 줄에 N과 K가 주어진다. N은 1 이상 500 이하의 정수이고, K는 1 이상 N 이하의 정수이다. 두 ..

문제 풀이/알고리즘

[백준] 카카오 코드 페스티벌 2018 예선, (15953번)상금 헌터

문제 (15953)상금 헌터 링크 : https://www.acmicpc.net/problem/15953 사용 언어 : JAVA 제이지는 자신이 코드 페스티벌에 출전하여 받을 수 있을 상금이 얼마인지 궁금해졌다. 그는 자신이 두 번의 코드 페스티벌 본선 대회에서 얻을 수 있을 총 상금이 얼마인지 알아보기 위해, 상상력을 발휘하여 아래와 같은 가정을 하였다. 제1회 코드 페스티벌 본선에 진출하여 a등(1 ≤ a ≤ 100)등을 하였다. 단, 진출하지 못했다면 a = 0으로 둔다. 제2회 코드 페스티벌 본선에 진출하여 b등(1 ≤ b ≤ 64)등을 할 것이다. 단, 진출하지 못했다면 b = 0으로 둔다. 제이지는 이러한 가정에 따라, 자신이 받을 수 있는 총 상금이 얼마인지를 알고 싶어한다. 입력 값 첫 번..

얌얌념념
얌얌 스파게티