안녕하세요 SSAFY(삼성 청년 SW 아카데미) 앰배서더 박예진 입니다.싸피에 대해 관심을 가지고 있던 중 싸피 공식 홈페이지를 통해 앰버서더 모집안내를 보고 지원하게 되었는데......결과는!?!?!?잊고 있다 문자를 받았는데 합격!!싸피(SSAFY) 앰버서더란?SSAFY 엠배서더에 관해 간단히 알아보자면 SSAFY에 대한 관심을 가지고 있고, SSAFY에 대한 다양한 소식들을 다른 분들에게 전달하는 홍보 활동을 진행하는 홍보대사입니다.초청회에서 홍보활동 가이드 및 사례에 대해 친전하게 잘 알려주시고 분위기 또한 처음보는 사람들이었지만 어색함 없이 초청회가 진행되었습니다.혹시나 다음에 지원하실분들은 홍보활동에 대해 걱정하지마시고 일단 지원해보세요!!!초청회 당일초청회 시작 11시 전에 역삼 멀티캠퍼스로..
분류 전체보기
2차원 누적합으로 2차원 배열을 풀어보자.2차원 배열의 누적합도 1차원 배열의 누적합과 크게 다르지 않다. 1차원 배열에서 sum[N]은 1번째부터 N번째까지의 합을 나타냈다. 그럼 이차원 배열 sum[N][M]을 (0,0)부터 (N,M)까지의 합이라고 해보자.빨간 부분 (3, 3)부터 (5, 5)의 합을 어떻게 구할 수 있을까? prefixSum[5][5]는 (1,1)부터 (5,5)까지의 합을 나타내므로 해당 부분에서녹색 부분(prefixSum[2][5])을 빼주고, 노란 부분(prefixSum[5][2])을 빼주고, 두 번 빠진 녹색과 노란색이 만나는 부분(prefixSum[2][2])를 한번 더 더해주면 될 것이다. 그럼 (0,0)부터 (N,M)까지의 모든 위치의 값만 유효한 시간 내에 구할 수 ..
도둑이 보석가게에 배낭을 메고 침입했다.배낭의 최대 용량은 W이며, 이를 초과해서 보석을 담으면 배낭이 찢어질 것이다.각 보석들의 무게와 가격은 알고 있다.배낭이 찢어지지 않는 선에서 가격 합이 최대가 되도록 보석을 담는 방법은? 배낭 채우기 문제는 다이나믹 프로그래밍의 유명한 유형이다.그중에서도 보석을 자를 수 있다고 가정하는 Fractional Knapsack 문제와자를 수 없다고 가정하는 0-1 Knapsack 문제가 있는데,전자보다는 후자가 주로 다루어진다. 0-1 Knapsack 문제는 다이나믹 프로그래밍이라는 방법을 쓰는 기본적인 문제로 알려져 있다.DP를 잘 모른다면 생각나는 방법은 두 가지 정도가 있을 것이다. 1. 모든 경우의 수를 넣어본다 (Brute-Force)n개의 보석이 있다고 치..
브라우저는 아마도 가장 많이 사용하는 소프트웨어일 것이다. 이 글을 통해 브라우저가 어떻게 동작하는지 설명하려고 한다. 이 글을 읽고 나면, 어떤 과정을 거쳐 페이지가 화면에 보이게 되는지 알게 될 것이다. 브라우저의 주요 기능브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다. 자원은 보통 HTML 문서지만, PDF나 이미지 또는 다른 형태일 수 있고, 자원의 주소는 URI(Uniform Resource Identifier)에 의해 정해진다.예) 최근 종료된 인터넷 익스플로러부터 파이어폭스, 사파리, 크롬, 오페라 등 브라우저는 HTML과 CSS 명세에 따라 HTML 파일을 해석해서 표시하는데 이 명세는 웹 표준화 기구인 W3C(World Wide Web Conso..
클로저란?클로저는 자신이 선언될 당시의 환경을 기억하는 함수다. 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다. 해당 함수의 생명 주기가 종료되더라도 함수의 반환된 값이 변수에 의해 참조되고 있다면 생명 주기가 종료되더라도 (실행 컨텍스트 스택에서 제거되어 pop 되더라도) 렉시컬 환경에 남아 참조가 가능하다. 클로저를 사용하면 뭐가 좋은 거지?클로저는 상태를 안전하게 변경하고 유지하기 위해 사용한다.다시 말해, 상태가 의도치 않게 변경되지 않도록 상태를 은닉하고 특정 함수에게만 상태 변경을 허용하기 위해 사용한다. 클로저를 어떻게 생성하나요?1. 내부(중첩) 함수가 익명 함수로 되어 외부 함수의 반환값으로 사용될 때2. 내부(중첩) 함수가 외부 함수의 스코프에서 실행될 때3. 내부 함수에서..
📌 이벤트 전파자바스크립트의 모든 DOM 요소 노드에서 발생한 이벤트는 DOM 트리를 통해 전파된다.사용자의 다양한 입력을 통해 동적으로 생성되는 이벤트 객체는 이벤트를 발생시킨 타깃을 중심으로 DOM 트리를 통해 전파된다. 전파되는 방향에 따라서 3단계로 구분할 수 있다. - 캡처링 단계: 이벤트 상위 요소 -> 하위 요소로 전파- 타깃 단계: 이벤트가 이벤트 타깃에 도달- 버블링 단계: 이벤트가 하위 요소 -> 상위 요소로 전파 브라우저는 기본적으로 이벤트 버블링 단계에서 이벤트를 캐치한다. 📌 이벤트 버블링 - Event Bubbling이벤트 버블링은 특정 화면 요소에서 이벤트가 발생했을 때 해당 이벤트가 더 상위의 화면 요소들로 전달되어 가는 특성을 의미한다. 아래 콘솔 창은 three cl..
DFS, 인접행렬, 역행렬을 사용하는 문제이다. Candidate | Softeer Assessment UI softeer.aiS -> T로 가는 경로가 존재해야 하고,T -> S로 돌아오는 경로가 존재해야 한다.fromS와 fromT만 사용하면 S -> T와 T -> S 경로를 독립적으로 찾게 되며, 이는 각각의 경로가 서로 다른 노드를 포함할 수 있다. 예를 들어, S -> T 경로가 포함하는 노드가 T -> S 경로와 일치하지 않을 수 있다. 그래서 역행렬이 알고리즘이 필요하다. fromS: S에서 출발하여 도달할 수 있는 모든 노드.fromT: T에서 출발하여 도달할 수 있는 모든 노드.toS: S로 도달할 수 있는 모든 노드 (역방향 그래프).toT: T로 도달할 수 있는 모든 노드 (역방향 그..
스코프는 유효 범위라는 뜻으로, 식별자(변수)가 유효한 범위를 말한다.자바스크립트 엔진은 스코프를 통해 어떤 변수를 참조해야 할 것인지 결정한다.따라서 스코프란 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙이라고도 할 수 있다. 자바스크립트의 스코프는 다른 언어의 스코프와 구별되는 특징이 있다. var 키워드로 선언한 변수와 let 또는 const 키워드로 선언한 변수의 스코프도 다르게 동작한다.function add(x, y) { //매개변수는 함수 몸체 내부에서만 참조할 수 있다. //즉, 매개변수의 스코프(유효범위)는 함수 몸체 내부이다. console.log(x + y); // 2 5 return x + y;}add(2, 5);//매개변수는 함수 몸체 내부에서만 참조할 수 있다.co..
OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹 사이트 상의 자신들의 정보에 대해 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 산업 표준 프로토콜이다. OAuth는 이전의 인증방식들의 보안이 취약하다는 단점을 보완하여 탄생했으며 현재는 표준안으로 발표되어 널리 사용되고 있다. OAuth 2.0의 핵심은 구글, 페이스북, 카카오 등 다양한 클라이언트 환경에 적합한 인증 및 권한의 위임 방법을 제공하고, 그 결과로 클라이언트에게 access token을 발급한다. 그리고 발급받은 access token을 이용해 타사의 api 서비스를 이용할 수 있다.
4.1 복잡도1. 복잡도와 빅오 표기법 ⭐알고리즘을 수행하면 시간과 메모리 공간 등의 자원이 사용된다.알고리즘이 얼마나 효율적인지 정량화하는 데 시간 복잡도와 공간 복잡도라는 개념을 사용한다.알고리즘의 복잡도는 주로 빅오 표기법으로 나타낸다. 🤔 시간복잡도?알고리즘의 실행 시간을 정량화하는 것 🤔 공간 복잡도?실행하는 데 필요한 메모리 사용량을 정량화하는 것이다. 🤔 빅오 표기법?입력 값(n)에 대한 수식에서 최고차항을 기준으로 알고리즘이 수행되는 최악의 시간 복잡도 빅오 표기법으로 나타낼 때 최고차항을 기준으로 하는 이유는연산의 수가 극한에 수렴할 때 나머지 항이 복잡도에 미치는 영향이 미미하기 때문이다. 대표적인 빅오 표기법에는 O(1), O(logn), O(n), O(nlogn), O(n^..