본문 바로가기

분류 전체보기

(128)
java script - 1. 환경설정 java script를 실행하기 위한 기본적인 환경 설정입니다.크롬을 이용하거나 웹을 만드는 방법도 있지만 이 글에서는 node.js를 이용한 방법으로 진행할 것입니다.우선 vscode(https://codestudycafe.tistory.com/16)와 node.js(https://codestudycafe.tistory.com/17)를 설치합니다. 그리고 개발을 진행할 폴더를 만들고 해당 폴더에서 vscode를 실행합니다.저는 project라는 이름의 폴더를 만들었습니다. 왼쪽 탭에서 새 파일을 만들고 test.js로 이름을 바꿉니다. 모든 프로그램의 시작은 hello world죠.console.log("hello world!") 를 입력하고 윈도우 기준 ctrl + shift + ` 를 눌러 터미널을..
네트워크 플로우 네트워크 플로우 알고리즘은 직관적이지도 않고 증명도 어렵고 플로우를 사용하는 문제인 걸 알아도 "이게 플로우라고?"라는 생각이 드는 알고리즘입니다. 최대한 직관적으로 이해할 수 있도록 해 보겠습니다.그래서 뭐하는 알고리즘인가?다음과 같은 문제를 생각해 보겠습니다.그래프가 하나 주어집니다. 주어진 그래프에는 $N$개의 정점과 $M$개의 파이프가 있습니다. 각 파이프는 물을 한쪽 방향으로만 흘릴 수 있습니다. 각 파이프의 흐를 수 있는 양은 다릅니다. 시작 정점과 끝 정점이 주어졌을 때, 시작 정점에서 끝 정점으로 최대한 많은 양의 물을 보내고자 합니다. 얼마나 보낼 수 있습니까? 예를 들어 다음 그래프 같은 경우(s부터 e까지) 다음과 같이 물을 흘리면 15만큼 흘릴 수 있습니다. 시간복잡도 같은 것들을 ..
윈도우 다크모드 개발자에게 꼭 필요한 기능입니다. 어떤 편집기를 써도, 어떤 운영체제를 써도 가장 먼저 해야 하는 것이 다크모드 설정이죠. 윈도우에서 다크모드를 설정해 보도록 하겠습니다. 바탕화면 빈 곳에서 우클릭을 하고 "개인 설정"을 누릅니다."색"을 누르고 "모드 선택" -> "다크"를 누릅니다. 원하신 다면 아래애서 "대비 테마"를 설정해 줄 수도 있습니다.+ 크롬 다크모드크롬은 기본적으로 기기에 따라 모드가 바뀌기 때문에 아마 이렇게 설정하면 크롬도 다크모드로 되어 있을 것입니다. 하지만 설정에 따라 아닐 수 있기 때문에 따로 다크모드를 하는 것도 해 보도록 하겠습니다. 크롬 오른쪽 위 점 3개 -> 설정을 누릅니다 왼쪽 탭에서 모양 누르고 모드 -> 어둡게를 누르면 다크모드로 적용됩니다.
node.js 설치 typescript를 하던가 react를 하던가 하면 꼭 npm ~~~를 해 달라는 게 있습니다. 이 npm은 node.js를 설치해야 사용할 수 있는데요, 그래서 웹 개발을 할 때 항상 node.js부터 설치를 합니다. 설치 방법부터 확인해 봅시다. 설치node 공식 사이트(https://nodejs.org/en)에 들어가서 설치 버튼을 누릅니다. 설치된 파일을 실행시키고 next와 동의를 누르다 보면 다음과 같은 창이 나올 것입니다. 필수적인 건 아니지만 가끔 "Chocolatey가 없어서 실행이 안됩니다."하는 경고를 봤기 때문에 체크를 하고 넘어갑니다.이제부터는 next, 동의, 엔터를 열심히 쳐 주면 됩니다. 전부 진행되었으면 잘 설치되었는지 확인해 봅시다. 명령 프롬프트를 열어줍니다. 클릭했을..
vscode 설치 코딩할 때는 언어에 따라 다양한 소스 코드 편집기를 사용합니다. 그 중 제가 가장 많이 사용하는 visual studio code (vscode) 설치법을 알려드리겠습니다.모든 글을 윈도우 기준으로 작성되었습니다. 설치우선 vscode공식 홈페이지(https://code.visualstudio.com/)로 갑니다.운영체제에 맞춰서 다운로드 해 줍니다. 다운로드된 파일을 실행합니다. 동의하겠냐고 물으면 동의하면 되고 어디에 설치하겠냐, 바로가기 만들겠냐고 하면 다음을 누르면 됩니다.  path에 추가할 것이냐, 편집기로 등록할 것이냐 하는데 이것도 다 체크되어 있으니 넘어가면 됩니다.  이후 설치를 누르면 알아서 설치가 됩니다. code .어떤 폴더에서 vscode를 열고 싶을 때가 있습니다. 여러가지 방..
크롬 설치 사실 인터넷에 검색하면 많이 나오지만 여기에도 한번 적어 보도록 하겠습니다.모든 글을 윈도우 기준으로 작성되었습니다. 설치컴퓨터를 사면 웹 브라우저가 하나 설치되어 있을 것입니다. 저는 Microsoft edge가 설치되어 있네요. 해당 브라우저에서 크롬을 검색해 줍니다.  그럼 제발 자기 꺼 써달라고 하는데 무시하고 chrome 웹브라우저 - google을 클릭합니다.  다운로드를 누르고 다운된 파일을 실행하면 설치가 완료됩니다.  크롬 기본 브라우저 설정설치할 때 기본 브라우저로 설정할 순 있지만 가끔씩 pdf를 열거나 할 때 다른 브라우저로 열리는 경우가 있습니다. 이 경우에도 크롬으로 열리도록 수정해 주겠습니다. 크롬 오른쪽 위 점 3개 -> 설정을 누릅니다.왼쪽에 기본 브라우저를 누릅니다.오른쪽..
백준 30481 - Forward and Backward 문제 번역하나의 숫자 $N$을 입력받습니다. $N$을 $X$진수로 변환했을 때, 팰린드롬이 되는 모든 $X$값을 출력합니다. 만약 이러한 $X$값이 없다면 *을 출력합니다.step 1더보기$N$이 2일 땐 *을 출력합니다. 그 외의 경우에는 $N-1$진수로 변환하면 항상 $11_{(N-1)}$이 나오므로 답이 1개 이상 존재합니다.변환 결과가 2자리인 경우와 3자리 이상인 경우로 구분해 보겠습니다. 3자리 이상인 경우부터 해결하겠습니다.3자리 이상인 경우에는 직접 계산합니다. $X$를 2부터 시작하여 $X$진수로 변환한 후 팰린드롬 여부를 확인합니다. $X>=\sqrt{N}$ 일 때 2자리가 되므로 이 과정은 $O( \sqrt{N} )$만큼 걸립니다.step 2더보기2자리인 경우 $X>=\sqrt{N}$..
백준 1118 - 색칠 2 step 1더보기색칠되지 않은 면적을 구하는 것이지만 전체에서 색칠된 영역을 빼는 것으로 생각하고 색칠된 영역의 면적을 구하겠습니다.$K \le 50,c[i] \le 1000$입니다. $K$를 잠시 무시하고 한번만 색칠한다 했을 때 만들어지는 영역들을 생각해 봅시다. 영역의 개수가 최대한 많아지도록 만든다면 다음과 같이 $1001 * 2$개의 영역이 만들어 질 것입니다.각 영역의 경계를 생각해 봅시다. 세로축과 평행한 경계가 4개, 가로축과 평행한 경계가 2002개 만들어 질 것입니다. 이를 세로 경계, 가로 경계라고 하겠습니다. $K$가 50이므로 전부 색칠하면 최악의 경우 세로 경계 200개, 가로경계 100100개가 만들어집니다. 이제 $200 * 100100$로 이 문제를 해결하면 됩니다. ste..
백준 31749 - 조작 step 1더보기$N$이 홀수일 때는 답이 0입니다.$a_1, a_2$를 조작하여 $a_1$을 $0$으로 만듭니다.$a_2, a_3$를 조작하여 $a_2$을 $0$으로 만듭니다.이런 식으로 $a_{n-1}$까지 $0$으로 만듭니다. 그럼 $a_n$에만 값이 들어있을 것입니다. 이제부터 나머지 숫자들을 $a_n$에 맞출 것입니다.$a_{n-2}, a_{n-1}$을 조작하여 두 숫자를 $a_n$로 만듭니다.$a_{n-4}, a_{n-3}$을 조작하여 두 숫자를 $a_n$로 만듭니다.이런 식으로 $a_1, a_2$까지 조작해서 모든 숫자를 $a_n$으로 만듭니다.step 2더보기위의 3번 과정까지 따라 하면 마찬가지로 $a_n$에만 값이 들어 있습니다. 백준 예제입력에 위 과정을 적용하면 0 0 0 0 0 1..
백준 31741 - 구간 덮기 step 1 더보기 선분을 1개, 2개, 3개 쓰는 경우에 대해 각각 답을 구하고 그 중 가장 좋은 것을 출력하면 됩니다. 1개를 쓰는 경우 : 전체를 다 덮는 선분이 있어야 합니다. 이 경우 답은 0입니다. 선분들을 (A)시작점을 포함하는 것, (B)시작점과 끝점 사이에 있는 것, (C)끝점을 포함하는 것 3 종류로 나눌 수 있습니다. 지금부터 (C)에서 고른 선분을 $C$, 그 선분의 시작점을 $C_x$, 끝점을 $C_y$ 이런 식으로 쓰겠습니다. 2개 쓰는 경우 : (A)와 (C)의 조합으로 만들 수 있습니다. $C$ 기준으로 $A$를 찾는다고 할 때 (A)에 있는 선분들 중 끝점이 $C_y$보다 큰 선분들 중 끝점이 가장 작은 선분이 최적의 선분입니다. set에 A의 끝 점을 전부 넣어두면 쉽게 ..