Category-archive

Dev

AWS SA Associate Dump Note

Miscellaneous Global Accelerator : optimal regional endpoint로의 라우팅 지원 Endpoint : NLB, ALB, EC2, EIP 등의 주소로 설정 가능 EC2 spot instance :...

HTTP note

TCP/IP 스택 IP(Internet Procotol) 지정한 IP 주소에 packet 단위로 데이터 전달 한계 비연결성 : 대상이 없어도 패킷 전송 비신뢰성 : 패킷이 사라지거나 순서대...

AM 프로젝트 및 Agile 개발

Agile 개발 Agile : 점진적으로 제품을 개발하는 기법들 Agile Manifesto 의사소통(>프로세스, 도구), 동작하는 소프트웨어(>문서), 고객과의 협력(>계약 협상), 변화에 대응 Backlo...

GKE 무중단 배포 및 Jenkins 연동

GCP gcloud auth list : 활성 계정 목록 표시 configure-docker us-central1-docker.pkg.dev : us-central1 리전의 docker 저장소 인증 설정 gcloud confi...

웹브라우저 JS

식별자 API element.tagName : 태그 이름 리턴 element.id : id 리턴 element.className : 클래스 이름들 리턴 element.classList : 클래스 이름들 배열로 리턴 ...

운영체제

Firmware : OS와 유사하지만 SW를 추가로 설치할 수 없음 3.1 운영체제와 컴퓨터 운영체제의 역할 CPU 스케줄링과 프로세스 관리 메모리 관리 디스크 파일 관리 I/O 디바이스 관리 운영체제의 구조 시스템콜 : 커널 영역의 기능...

네트워크

2.1 네트워크의 기초 네트워크 : node와 link가 연결되어 리소스를 공유하는 집합 2.1.1 처리량과 지연 시간 처리량(Throughput) : 링크를 통해 전달되는 단위 시간당 데이터양(bps) 대역폭(Bandwidth) : 네트워크의 최대 전송 속도...

디자인 패턴과 프로그래밍 패러다임

1.1 디자인 패턴 디자인 패턴 : 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’ 형태로 만들어 놓은 것 1.1.1 Singleton 패턴 하나의 클래스가 하나의 인스턴스를 가짐 장점 ...

Java stream optimization

Stream optimization stream을 chaining으로 처리할 때 원소 하나씩에 대해 vertical하게 연산들이 수행됨 1 intermediate → 1 terminal → 2 intermediate → 2 terminal → … ...

Java Creating a stream

Array, Collection을 함수형으로 처리하는 기능을 제공 병렬 처리 가능 Creating - Intermediate operation - Terminal operation 순서로 데이터를 처리함 Creating a Stream Empty Stream 생성...

Regex 정리

플래그 g : 모든 결과 리턴 없을 경우 매치하는 첫 결과만 리턴 i : case-insensitive m : multi line 줄이 바뀌어도 계속 검색 ^, $가 각 줄마다 적용됨 ...

Class Diagram 정리

클래스 다이어그램 아래 설명들에서 A-B이라고 하면 위 그림 기준 A가 왼쪽, B가 오른쪽에 있는 것임 Association A-B이면 A가 B를 참조함 A의 필드에 대입하는 형식이 아닌, A의 메소드에서 B의 메소드를 호출하는 등의 형식 ...

HttpServer in Java

보통 아래와 같은 순서로 HttpServer를 사용해 서버를 개설함 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public static void main(String[] args){ try { String uri = "127.0.0.1"...

HttpHandler in Java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class sumcontroller implements HttpHandler { @Override public void handle(HttpExchange t) t...

Modify excerpt in Jekyll

Excerpt Jekyll에서 사용되는 블로그의 내용 미리보기이다. 기존에는 첫 h2만 보여서 수정을 하게 되었고, 위 사진은 이후의 내용들도 나오게 한 상태이다. In Jekyll 위 사진에서 볼 수 있듯이, archive__item-exceprt 클래스인 ...

Implemention of Audio communication for FMETP

Analysis of audio pipeline 결국 화면이 나올 때 음성이 같이 나와야 하기 때문에, 화면 처리를 담당하는 game object들에 audio 관련 스크립트들을 붙임 FaceCamera : bytedata로의 화면 인코딩을 담당하는 ga...

How to adapt Jenkins on EC2

1. Install Java, Jenkins to EC2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # remove other versions of java yum list installed | grep java yum remove java-1.8....

Handling FMETP WebSocket disconnection

App configuration Scenes StartScene_General Holistic StartScene_General에서 Start Session 버튼을 클릭하면 Holistic scene으로 넘어감 오른쪽 버튼들은 가장 위...

Socket.io 소개

Client-side socket.on(eventName, callback) : eventName 이벤트 수신 socket.emit(eventName, msg) : eventName 이벤트 전송 Server-side socket.on(eventName, cal...

Kreskel 서버 간 Http 요청

MVC template을 사용한 서버 생성 HelloMvc 이전에 사용한 HelloMvc를 그대로 사용함 ReqMvc HttpClient를 사용해서 요청을 보낼 서버 HelloMvc 설정 Co...

Blazor 소개

Blazor JS 대신 C#을 사용해서 interactive web UI를 구축할 수 있는 SPA framework WebAssembly : bytecode instruction을 실행함 DOM을 직접적으로 건드리진 못함 → JS를 사용해서 ...

ASP.NET MVC Tutorial

MVC pattern Models : 유효성 검사, 비즈니스 로직 적용, 뷰에 결과 제공 Views : 모델 데이터 표시, UI 구성 요소 Controllers : 브라우저 요청 처리, 모델 데이터 검색(모델에 전달), 뷰 템플릿 호출 MVC 앱 생성 1 dot...

ASP.NET 환경 구축

설치 및 테스트 M1 Pro, Ventura 13.1 기준 .NET 6.0 다운로드(Linux, macOS 및 Windows) Arm64 설치관리자 dotnet --info로 설치 확인 홈페이지에서 수동으로 설치하는게 homebrew로 설치하는 것보다...

Selenium으로 크롤링하기

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 from selenium import webdriver from selenium.webdriver import Ac...

Spring Boot와 AWS로 혼자 구현하는 웹 서비스 2 - JPA(Ch.03)

패러다임 불일치 관계형 DB : 어떻게 데이터를 저장할지에 초점이 맞춰짐 OOP : 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는데 초점이 맞춰짐 객체를 DB에 저장할 때 객체의 모델링을 표현할 방법이 부족했음 1 2 3 4 5 6 7 // J...

psd-tools 간단 사용법

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from psd_tools import PSDImage from matplotlib import pyplot as plt import json psd=PSDImage.open('tpsd.psd') f...

Spring에서 form 태그를 사용한 요청 송/수신

form 태그를 사용한 요청 <form> 태그를 사용하는데 formData를 사용해서 새로 ajax로 요청을 보내는 경우는 잘 없음 formData.append(name, value)으로 요소 추가하면 무조건 문자열로 들어감 ...

Express.js + React 강의

Boiler plate : 자주 쓰이는 코드를 재사용할 수 있도록 미리 만들어놓은 코드 Node.js를 통해서 javascript를 server side와 같은 browser 이외의 환경에서 사용할 수 있게 됨 Express.js : Node.js의 framework ...

Anaconda on EC2

리눅스 AMI에서 설치 1 2 3 4 5 # 아나콘다 설치 sudo wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh # 아나콘다 실행 source ~/.bashrc 터미널 프롬프트에 (b...

JSnote13: Modules

Modules Modules Modules, introduction 프로젝트의 크기가 커지면 여러 개의 모듈로 분리해서 관리하는게 효율적임 모듈은 보통 하나의 클래스나 함수들로 구성된 라이브러리 하나임 아래와 같은 모듈 시스템들이 있었음: AMD : require.js를 사용...

JSnote12: Generators, advanced iteration

Generators, advanced iteration Generators regular function은 하나의 결과만 리턴함 generator는 여러 개의 값을 필요에 따라 차례대로 리턴(yield)할 수 있음 iterable과 함께 사용하면 좋음 Generator funct...

JSnote11: Promises, async/await

Promises, async/await Introduction: callbacks 이 article에서는 browser method를 사용함 callback, promise와 다른 추상적인 개념을 소개하기 위해 스크립트 로딩, 페이지 조작과 같은 browser method를 ...

JSnote10: Error handling

Error handling Error handling, “try…catch” try...catch를 사용하면 에러가 발생했을 때 스크립트가 멈추는 대신 다른 행동을 하도록 제어할 수 있음 The “try…catch” syntax try...catch는 두 block으로 이루어짐:...

JSnote9: Classes

Classes Class basic syntax new와 constructor function을 이용해서 비슷한 종류의 객체를 여러 개 만들 수 있지만, class를 이용하면 OOP와 관련된 다양한 기능을 사용할 수 있음 The “class” syntax 1 2 3 4 5 6 7...

JSnote8: Prototypes, inheritance

Prototypes, inheritance Prototypal inheritance user라는 객체를 만든 상태에서, 이것을 조금 변형해 admin, guest를 만들고 싶을 때와 같을 때 prototypal inheritance가 사용됨 [[Prototype]] specifi...

JSnote7: Object properties configuration

Object properties configuration Property flags and descriptors property는 “key-value” pair 이상의 가치를 가짐 additional configuration options, getter, setter functio...

JSnote6: Advanced working with functions

Advanced working with functions Recursion and stack Two ways of thinking Iterative Recursive ※ JS는 maximal recursion depth가 대부분 100000 미만으로 제한되어 있음...

JSnote5: Data types

Data types Methods of primitives primitive와 object의 차이점: A primitive primitive type의 값임 7개의 type이 존재 : String, Number, Bigint, Boolean, S...

JSnote4: Objects: the basics

Objects: the basics Objects object는 {...} 안에 key: value와 같이 properties를 선언함으로써 만들어짐 empty object는 object constructor, object literal, 두 가지 방법으로 만들 수 있음: 1 2 ...

JSnote3: Code quality

Code quality Debugging in Chrome Debugging : process of finding and fixing errors within a script The “Sources” panel File navigator, code editor, JavaScrip...

JSnote2: JavaScript Fundamentals

JavaScript Fundamentals Hello, world! alert는 browser-specific command임 Node.js와 같은 서버 환경에서는 node my.js와 같은 command로 script 실행 가능 The “script” tag HTML 문서 안에...

JSnote1: An introduction

An introduction An Introduction to JavaScript What is JavaScript? JavaScript : 웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어 Script : JS로 작성한 프로그램(HTML안에서도 작성 가능 => 웹페...

CSSnote5: CSS layout

CSS layout Introduction to CSS layout The page layout techniques in this module: Normal flow display property block, inline, inline-block와 같은...

CSSnote4: Styling text

Styling text Fundamental text and font styling What is involved in styling text in CSS? The CSS properties used to style text generally fall into two categor...

CSSnote3: CSS building blocks

CSS building blocks Cascade and inheritance Conflicting rules The cascade Stylesheets cascade. The order of CSS rules matter. When two rules have equal speci...

CSSnote2: CSS first steps

CSS first steps What is CSS? Document : a text file structured using a markup language(html, xml, …) Presenting a document = converting a document Browsers(k...

CSSnote1: CSS Basics

CSS Basics What is CSS? CSS(Cascading Style Sheets) style sheet language(neither programming language nor markup language) to style HTML elements select...

Web 공부 계획

http://www.tcpschool.com/html/html_intro_basicStructure https://developer.mozilla.org/en-US/docs/Learn HTML5 https://developer.mozilla.org/en-US/docs/Web/...

HTMLnote4: HTML Tables

HTML Tables HTML table basics When should you NOT use HTML tables? a lot of people use HTML tables to lay out web pages(one row for header, …) it was be...

HTMLnote3: Multimedia and embedding

Multimedia and embedding Images in HTML <img> att : src, alt, width, height hotlink to images on other servers는 하지 않는게 좋음 alt가 필요한 이유 ...

HTMLnote2: Introduction to HTML

Introduction to HTML Getting started with HTML Semantic web HTML의 버전이 높아지면서 headings, figcaption 등 의미를 가지는 elements가 많아졌는데 이런 것들을 적절하게 사용하는 것 SEO가 높아짐, ...

HTMLnote1: HTML Basics

HTML Basics HTML : HyperText Markup Language UX : User eXperience Google search engine treats a hyphen as a word-separator but does not for an underscore. -&...

Back to top ↑

PS

BOJ 1918 - 후위 표기식

문제 아래와 같은 조건을 만족하는 중위 표기식이 주어질 때 후위 표기식으로 변환하는 문제이다. 알파벳 대문자로 이루어진 피연산자는 한 번씩만 등장 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 수식은 주어지지 않음 표기식은 알파벳 대문자, +, -, *, /, (...

BOJ 1865 - 웜홀

문제 \(N\)개의 정점에 대한 \(M\)개의 가중치가 양수인 양방향 간선과, \(W\)개의 가중치가 음수인 단방향 간선이 주어진다. 이때 음수 사이클이 존재하는지 판별하는 문제이다. \(1\le N \le 500,\; 1\le M \le 2500,\; 1\le W \le 20...

BOJ 1238 - 파티

문제 \(N\)개의 정점에 대한 \(M\)개의 단방향 간선이 주어진다. 이때 모든 정점에 대해서, 한 정점 \(X\)로 향하는 최단 경로, \(X\)에서부터 도착하는 최단 경로의 합의 최댓값을 구하는 문제이다. \(1\le N \le 1000,\; 1\le M \le 10000...

C++에서 permutation 구하기

Implementation, Simulation 문제를 풀 때는 순열을 사용해야 하는 경우가 종종 있다. <algorithm> 헤더에 있는 next_permutation()을 사용해서 아래와 같이 편리하게 구할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12...

BOJ 9663 - N-Queen

문제 \(N \times N\) 크기의 타일에 \(N\)개의 퀸을 서로 공격하지 않게 배치할 수 있는 경우의 수를 구하는 문제이다. \(1 \le N \le 15\)이다. 풀이 서로 공격하지 않으려면 각 행/열에 정확히 하나의 퀸만 존재해야 한다. 각 열마다 퀸의 존재유무를...

BOJ 2038 - 골롱 수열

문제 Golomb 수열의 임의의 항을 구하는 문제이다. Golomb 수열은 임의의 \(k\)에 대해 \(k\)가 수열상에서 \(f(k)\)번 등장하는 단조증가 수열이다. \(1\le n \le 2,000,000,000\)일 때 \(f(n)\)을 구해야 한다. 풀이 수열의 정...

BOJ 1720 - 타일 코드

문제 2 X N 사각형을 2 X 1, 2 X 2 타일으로 채우는 경우의 수를 구해야 한다. 이때 좌우 대칭인 두 가지 결과가 존재할 경우 둘을 하나로 처리한다. 풀이 전체 타일의 경우의 수에 대한 점화식은 아래와 같다. dp(n)=2*dp(n-2)+dp(n-1) 이때 팰린드...

BOJ 1341 - 사이좋은 형제

문제 \(0\le{a}\le{b}\le{2^{63}-1}\), \(\text{gcd}(a, b)=1\)인 정수 a, b가 주어진다. 점화식이 \(a_n=\frac{1}{2}\cdot{(\frac{1}{2})}^{n-1}\) 인 무한 등비 수열에 대해 특정한 패턴에 따라서 A, B...

BOJ 1101 - 카드 정리 1

문제 N개의 박스에 M개의 색상([1, M])으로 구분되는 카드들을 넣어야 한다. 이때 아래와 같은 조건을 만족해야 한다. 최대 1개의 박스를 조커 박스로 지정할 수 있고, 조커 박스는 색이 다른 카드들을 보관해도 된다. 조커 박스를 제외한 모든 박스는 비어있거나, 같...

BOJ 1513 - 경로 찾기

문제 N x M 크기인 지도에 1부터 C까지 번호가 매겨진 오락실 C개가 존재한다. 직전에 방문한 오락실의 번호가 이번에 방문할 오락실의 번호보다 작은 경우 방문할 수 있다. 이때 (1, 1)에서 출발하여 (N, M)으로 가는 경로들 중 오락실을 [1, C]개 지나는 경로의 개수...

BOJ 20047 - 동전 옮기기

문제 문자열의 길이 n, 문자 o, x로 이루어진 문자열 S, T, 이동시킬 문자의 위치 i, j가 주어진다. 문자열 S에서 i, j 위치에 있는 문자 두 개의 위상을 유지하면서 이동시켜 T로 변환할 수 있는지 판별하는 문제이다. 이때 i, j는 [0, n)의 범위로 주어진다. ...

BOJ 22871 - 징검다리 건너기 (large)

문제 수열 \(A_N=A_1A_2\dots{A_i}\dots{A_N}\)에 대해 항 사이를 이동할 수 있다. 항상 오른쪽으로만 이동 가능하고, \(i\) 번째 항에서 \(j\) 번째 항으로 이동할 때 드는 비용은 \((j-i)\times{(1+|A_i-A_j|)},\quad i&...

BOJ 21606 - 아침 산책

문제 모든 점이 1(실내), 0(실외)로 구분되는 트리가 주어졌을 때, 산책할 수 있는 경로의 개수를 구하는 문제이다. 경로의 조건은 처음과 끝 지점이 1(실내)이어야 하며, 이외의 점들은 모두 0(실외)여야 한다는 것 뿐이다. 따라서 경로 \(P\)를 뒤집은 경로도 $$P$와 ...

BOJ 17270 - 연예인은 힘들어

문제 그래프 상의 두 점 \(v_j, v_s\)가 주어지면, 임의의 점 \(v\)에 대해 두 점과의 최단 경로의 합이 최소가 되는 점들을 찾고, 나머지 쿼리들을 적용시키는 문제이다. 조건 1. 지헌이의 출발 위치와 성하의 출발 위치는 새로운 약속 장소가 될 수 없다. 조건 2....

BOJ 1135 - 뉴스 전하기

문제 임의의 트리가 주어지고 한 노드는 1분에 하나의 자식에게 전화할 수 있을 때, 루트에서 시작해 모든 노드가 전화를 받기까지 몇 분이 걸리는지 계산하는 문제이다. 풀이 한 노드에 대해, 자식 노드 각각을 루트로하는 서브 트리의 소요 시간이 많은 자식부터 전화를 해야 하기 ...

BOJ 1285 - 동전 뒤집기

문제 n x n으로 표현되는 \(N^2\)개의 동전들의 상태가 주어진다. (\(N\le 20\)) 한 행이나 한 열의 동전들을 모두 뒤집는 작업들을 수행해서 나올 수 있는, 뒷면이 위를 향하는 동전이 최소일 때 그 개수를 구하는 문제이다. 풀이 크기 n인 벡터 안에 각각 n비트...

BOJ 15902 - Split and Merge

문제 1x1, 1x2 조각으로 이루어진 1xL 격자에 대해, 초기 상태와 목표 상태가 각 상태를 이루는 조각의 수, 각 조각들의 너비로 주어진다. e.g. 조각의 수가 4이면 1 2 2 1 1x1 두 개를 1x2로 만드는 연산과, 1x2를 1x1 두 개로 나누는 연산만 가능할 때...

BOJ 2612 - 선분 그룹

문제 x1 y1 x2 y2로 표현되는 선분 N 개가 주어진다. 두 선분이 한 점에서라도 만나면 같은 그룹이라 정의할 때, N 개의 선분이 구성하는 그룹의 개수, 그룹들 중 가장 많은 선분이 속한 그룹의 선분 수를 출력해야 한다. 풀이 점 A(x1, y1), B(x2, y2), ...

BOJ 2261 - 가장 가까운 두 점

x, y 좌표의 절댓값이 10000 이하인 점 N개가 주어진다.(여러 점이 같은 좌표를 가질 수도 있다) 이때 가장 가까운 두 점의 거리의 제곱을 출력하면 된다.(이 이후부터 거리의 제곱을 거리라 하겠다.) 문제 풀이 점들의 배열 ps에 대해서 int clo...

BOJ 1697 - 숨바꼭질

0<=N, K<=100000일 때 +1, -1, *2 세 가지 연산을 사용해서 N에서 K로 가는 최소 연산 횟수를 구하는 문제이다. 문제 풀이 +1, -1, *2 세 가지 연산을 할 수 있는데 N에서 시작해서 이 세 연산들을 하면서 Dijkstra...

BOJ 7453 - 합이 0인 네 정수

N(1<=N<=4000)개의 정수로 이루어진 배열 A, B, C, D가 주어질 때 A[a]+B[b]+C[c]+D[d]=0인 (a, b, c, d)의 개수를 구하는 문제이다. 문제 풀이 (a, b, c, d)를 Brute-force로 구하려면 O(4...

BOJ 1261 - 알고스팟

N X M(1<=N,M<=100) 크기의 미로에서 (1, 1)에서 (N, M)으로 갈 때 부숴야 하는 최소한의 벽의 개수를 구하는 문제이다.(1인 칸이 벽으로 채워졌다고 생각하면 된다. 처음 들어갈 때만 벽을 부수는 느낌) 문제 풀이 벽을 가중치라 정하고 ...

BOJ 1208 - 부분수열의 합 2

수열 A[N](1<=N<=40, A[i]는 정수)에 대해 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S(|S|<=1000000)가 되는 경우의 수를 찾는 문제이다. 문제 풀이 최대 40개의 원소에 대해 brute-forc...

BOJ 2580 - 스도쿠

9X9 크기의 스도쿠를 푸는 문제이다. 문제 풀이 풀어야 하는 곳들을 저장해놓고 그 순서를 따라서 dfs를 돌리면 된다. 소스코드 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 ...

BOJ 1107 - 리모컨

보고 싶은 채널 N(0<=N<=500000), 0-9 중 고장난 버튼이 주어질 때 리모컨을 몇 번 조작해야 원하는 채널을 틀 수 있는지 구하는 문제이다. 숫자 버튼 이외에 +, -버튼이 있어 숫자 버튼 10개가 고장날 경우도 주어지고, 원래 틀어져 있던 채널은 10...

BOJ 1517 - 버블 소트

길이 N의 수열이 주어지면 버블소트 하는 과정에서 swap이 몇 번 일어나는지 구하는 문제이다. 문제 풀이 Segment tree를 이용한 풀이 수열을 인덱스와 함께 pair로 저장한 후 값을 기준으로 오름차순 정렬한다. 첫 번째 원소부터 순서대로 seg...

BOJ 2447 - 별 찍기 - 10

n이 주어지면 n x n 크기의 문제에서 주어지는 패턴으로 출력하는 문제이다. 문제 풀이 edge case를 1x1로 잡고 정수배열에 먼저 값을 저장해놓은 후 string으로 옮겨서 한 줄씩 출력했었다. ' '과 '*' 중 ' '가 훨씬 적기 때문에 배열을 모두 '*...

BOJ 1780 - 종이의 개수

3^n x 3^n으로 이루어진 행렬이 주어지는데, 이 행렬을 9분할하면서 분할된 조각의 모든 원소같으면 그 조각은 분할을 멈춘다. 분할이 모두 종료된 후 원소의 종류별(-1/0/1) 조각의 개수를 구하는 문제이다. 문제 풀이 Merge sort와 마찬가지로 1x1까...

BOJ 1654 - 랜선 자르기

현재 선의 수 k, 목표로 하는 선의 수 n, 현재 선들의 길이가 주어질 때 선들을 일정 길이로 잘라야 하는데, n보다 크거나 같은 개수를 만들어야 하고, 일정 길이가 최대가 되도록 길이를 정해야 한다.(자르고 남는 나머지 선들은 버린다) 문제 풀이 bin...

DFS의 구현(Recursive/Iterative)

두 구현 방법의 차이 DFS는 자식 노드 중 방문하지 않은 노드가 있으면 현재 노드에서의 탐색을 멈추고 자식 노드로 옮겨가서 DFS를 완료한 후에 다시 돌아오는 구조이다. 이것을 보기 좋게 함수로 구현한 것이 recursive하게 구현하는 방법이고, stack을 이용...

BOJ 11725 - 트리의 부모 찾기

간선 정보와 루트의 번호만 주어질 때 각 노드들의 부모를 출력하는 문제이다. 문제 풀이 루트노드에서부터 자식들을 bfs로 탐색하면서 부모를 찾아내었다. 아래 코드에서 주석들은 풀고나서 다른 사람들의 코드를 보면서 공부한 것으로, 밑에서 설명...

BOJ 9466 - 텀 프로젝트

모든 노드의 out degree가 1인 그래프에서 cycle에 속하지 않은 노드의 개수를 구하는 문제이다. 문제 풀이 component를 생각하여 방문하지 않은 정점마다 dfs를 돌리면서 cycle을 체크하면 된다. cycle체크는 visited벡터를 0/1/-1(...

BOJ 2178 - 미로 탐색

붙어있는 숫자로 입력이 주어진다. 입력을 받고 BFS를 돌리면 된다. 문제 풀이 소스코드 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 ...

BOJ 1676 - 팩토리얼 0의 개수

N!을 구해서 오른쪽에서부터 consecutive한 0의 개수를 구하는 문제이다. 문제 풀이 0<=N<=500이기 때문에 팩토리얼을 직접 구해서 푸는 것은 overflow가 나기 때문에 \(N\)까지 수를 곱해가면서 0이 나오자마자 없애고 계산을 이어나가거...

다시 풀어볼 문제들(20.08.26)

목록 Codeforces Round #665 Div.2 D Codeforces Round #665 Div.2 E Codeforces Round #665 Div.2 F BOJ 1324 BOJ 15902 BOJ 16140 지금 안풀리는 문제들이다. 2달 후에(20.10.26...

BOJ 1168 - 요세푸스 문제 2

저번 문제에서 n, k의 범위가 10^5로 넓어진 문제이다. (풀고 걱정했던 내용이 바로 나왔다.) 문제 풀이 segment tree의 leaf노드를 n명의 사람이라 하고 제거되지 않으면 1, 제거된 상태를 0이라 정의했다. 이후 저번 문제와 똑같은 방법으로...

BOJ 1158 - 요세푸스 문제

n, k(n, k<=5000)이 주어질 때 (n, k)-Josephus permutation을 구하는 문제이다. 문제 풀이 n이 작아서 vector로 구현만해도 풀린다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

BOJ 1406 - 에디터

10^5 이하의 길이인 초기 문자열이 주어지고 쿼리의 개수 N(N<=5*10^5)가 주어졌을 때 모든 쿼리를 마친 후 문자열을 출력하는 문제이다. 문제 풀이 처음에 그냥 vector를 이용해 처리하면 될거라 생각했는데 vector의 경우 insert, ...

BOJ 10989 - 수 정렬하기 3

10000 이하의 자연수가 N(N<=10^7)개 주어질 때 3sec, 8MB 안에 정렬한 결과를 출력하는 문제이다. 문제 풀이 시간만 보고 STL sort를 썼다가 메모리초과를 받아서 당황했다. 들어오는 수의 범위를 이용해서 count...

BOJ 10825 - 국영수

<tuple>이 있다는 것을 알게 되었다. pair<int, pair<string, int>>와 같은 선언과 s.first.second.second와 같은 귀찮고 보기 힘든 내용을 싹 정리해준다. 소...

BOJ 10814 - 나이순 정렬

<algorithm> 헤더에 sort()이외에도 stable_sort()가 있다는 것을 알게 되었다. 종종 쓰일 것 같다. 소스코드 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 ...

test1

This theme supports link posts, made famous by John Gruber. To use, just add link: http://url-you-want-linked to the post’s YAML front matter and you’re done...

Back to top ↑

Miscellaneous

2023.03

3월에는 따로 민턴 대회도 없었고, 평일에도 자주 나가지 못했다. 2월이랑 플레이 방식도 달라진 게 없었다. 2월에는 전위랑 로테이션이 좀 늘었다고 느꼈는데, 3월에는 따로 늘었다고 느껴지는게 없다. 그나마 스매시칠 때 어깨를 신경쓰면서 치니까 약간 세기가 세졌었는데, 몇 번 그렇...

2023.02

BFC 004를 나갔다. 두 달마다 열리는 대회라서 긴장감이 없어졌다. 남복 초심으로 나갔는데, 두 번째 경기에서 좋은 랠리가 하나 나왔었다. 당시에 녹화를 못해서 아쉬웠는데 상대팀이 유튜브에 올려놔서 볼 수 있었다. 어텐션도 따로 참가했었는데 나도 어텐션을 응원가고 어텐션 사람들...

2023.01

첫 출근이라 심적으로 조금 부담스러워서 퇴근하고 일부러 민턴이나 약속을 더 나갔던 것 같다. 레슨은 출근때문에 받지 못했지만, 게임을 많이 치면서 게임 운영 능력은 올라갔다. 설 연휴에 안양으로 초대를 받아서 잘 치는 모임에 가서 친 적이 있는데, 확실히 잘치는 사람들과 쳐야 실력...

2022.12

민턴은 레슨 받으면서 bfc, 서울시대회를 나갔다. 서울시대회는 공동 3등, bfc는 4강에서 떨어졌다. 둘 다 그래도 성적이 좋아져서 보람찼다. 레슨 받고 송화 형님이랑 게임을 계속 친게 효과가 있는 모양이다. 첫주에 소마 서버 파일이나 레퍼런스들을 정리하는데, 끝난게 비로소 ...

2022.11

민턴 레슨을 다시 받기 시작했다. 사실 10월보다 11월에 프로젝트 관련 작업을 더 많이 했지만, 마음의 여유가 달라서 할 수 있었던 것 같다. 9월 말에는 목표만 정했지, 그걸 이룰 수 있는 방법을 알지 못했고, 10월 말에는 목표와 달성 방법을 알고 있었다. 10월에는 대회도 ...

mmistakes inline, block 코드 style 수정

이전에 코드 블럭과 인라인의 글자 크기를 조절한 적이 있었는데 inline code는 제대로 조절이 되지 않았다. 이번에 백준 1513번 문제 풀이를 올리면서 인라인 코드 스타일의 가독성이 너무 떨어져서 바꾸기로 마음먹었다. 코드 스타일 관련 파일들 assets/...

2022.10

10.2에 전국 대회인 BFC를 나갔다. 첫 대회를 전국대회로 나가서 더 흥분되었던 것 같다. 예선 팀끼리 풀리그인줄 알아서 1승 상태에서 대충 쳤는데 알고보니 토너먼트 방식이었고, 예탈했다. 한 4시간 정도 기다려서 두 경기 치고 나오니까 허탈했다. 10월은 프로젝트 때문에 바쁠...

2022.09

민턴 레슨을 아침에 받아서 하루 일과에 지장이 없을 것이라 생각했는데 생각을 잘못했다. 아예 2시 출근이 고정이었으면 빠르게 움직였겠지만, 따로 출근 시간이 강제되지 않고, 재택으로 할 때도 많아서 씻고 밥먹으니 늘어졌다. 중순 쯤에 너무 늘어져서 daily scrum 때 할 말이...

2022.08

둘째 주에 코로나에 걸렸었다. 그 다음주 주말에 계곡가는 일정이 있었는데, 바로 전날에 격리가 해제되어 다행히도 일정에 차질은 없었다. 코로나를 변명삼아서 거의 일주일 정도 아무 것도 하지 않고 쉬었다. 확진 후 이틀 정도는 앉으면 머리가 아파서 실제로 못했지만 그 후 3일 정도는...

2022.07

3일에 방 입주하고 일주일 정도는 정신이 없었다. 낮에는 센터로 갔다가, 돌아오면 택배 정리하고 노트북 세팅, 공부를 해서 시간이 잘 갔던 것 같다. 이 생활을 며칠 반복하다보니 둘째 주에는 좀 외로웠다. 밥도 방에서 계속 해결하다보니 더 했던 것 같다. 그래서 배드민턴 소모임을 ...

2022.06

기말고사, 논문 피드백, 소마 기획심사가 2-3째 주에 몰려 있어서 정말 바빴다. 기말고사는 다 보내줬고, 딥러닝 프로젝트마저도 데이터셋 모을때만 열심히 하고 모델 학습이랑 테스트는 외국인 친구들이 다해줬다. 기획회의는 안영샘 멘토님의 멘토링 한 번으로 거의 정리가 되었다. 회사를...

2022.05

5월을 요약하면 팀 결성, 학사 논문으로 요약할 수 있을 것 같다. 팀 빌딩은 4월 말까지 마무리하려고 센터까지 갔지만, 별다른 소득 없이 5월 중순까지 이어졌다. 센터에 갔을 때 사람을 적극적으로 많이 만난 것도 아니었다. 대부분 팀을 만들어서 기획회의를 하고 있던 시점이어서 가...

CUDA 환경 구축

CUDA, cuDNN, 가상환경, ML framework 순으로 설치 아래는 tiny-cuda-nn을 설치하기 위해서 vscode, choco, cmake가 포함되어 있음 1. CUDA, cuDNN 설치 GPU 3070 lapto...

Python virtual environments 관리

Anaconda virtual environments Anaconda prompt에서는 conda env ~ 명령어를 이용해서 원하는 python 버전으로 가상 환경을 생성할 수 있다. 같은 환경에서 여러 개의 프로젝트를 진행할 경우, python 버전이나 다른 패키지끼리의 의...

Google People + AI Guidebook 간단 요약

문화지능 AI가 도움이 되려면 Human-Centered AI가 되어야 함(+HCI) AI product: 설계, 문제 정의, 사용할 알고리즘, 테스트, UI를 통해 상호작용 ⇒ 사람이 수행함 Challenge: ...

Algolia 레코드 생성, 블로그 업데이트

Algolia repo 페이지 Settings - Webhooks에서 Travis CI 추가 가능 repo에 .travis.yml 파일이 있어야 함 Travis CI 홈페이지에서 repo 추가 이전에는 travis의 config 파일...

스스로 구축하는 AWS 클라우드 인프라 - 기본편

다루는 내용 서버리스 정적 웹사이트 호스팅 및 성능 가속화 LAMP 웹 서버 및 Application Load Balancer 구성 관계형 데이터베이스 서비스 구성 Auto Scaling을 통한 확장성 및 탄력성 구성 섹션 0. 오리엔테이션 EC2 I...

VS Code로 Mac, Windows에서 Jekyll 사용하기

Mac homebrew 설치 homebrew가 ruby 기반이기 때문에 homebrew를 설치하면 ruby도 같이 깔림 homebrew로 rbenv 설치 ruby 경로가 없다고 나오면 ~/.bash_profile에 환경...

블로그 업데이트(21.07.12)

추가해야 하는 포스팅 parametric search 하나 풀어보고 2110에 쓴게 param search 맞는지 vi v(10)으로 선언하고 v[10]이 원래 호출이 되나??(세그폴트 뜨지않나?)//boj 1806 boj 1324 풀고 정리 하루3분 네트워크 pd...

Markdown 문법 몇 가지

주석에도 list를 사용할 수 있음 Markdown 1 2 3 4 5 6 7 8 9 10 11 12 > 주석 안에서 > - list 1 > - list 2 > - list 2-1 > - list 2-2 > content in list 2-2...

21.05.22

 오늘부로 MDN CSS modules는 모두 끝냈다. 한글로 번역이 되어있는 article도 여러 개 있었지만 의역이나 생략된 내용이 있을까봐 다 원문으로 공부했다. 읽으면서, 영어랑 한글은 구조가 정말 반대로 되어있다는 것을 느꼈다. 영어는 한 문장에서 대상을 먼저 소개한 다음...

21.04.29

sitemap을 아무리 제출해도 색인 생성되지 않는 페이지가 있었던 이유 google search console에서 색인 생성 제외되었던 이유가 주소가 중복되기 때문인듯 (blog-update 포스트들) => file name에 날짜 추가함 Upstream merge ups...

블로그 업데이트(21.04.11)

포스팅 해야하는 것(21.02.07) parametric search 하나 풀어보고 2110에 쓴게 param search 맞는지 vi v(10)으로 선언하고 v[10]이 원래 호출이 되나??(세그폴트 뜨지않나?)//boj 1806 boj 1324 풀고 정리 남은 ...

Markdown에서 코드 표시(표 안에)

Markdown에서 지원하는 문법 Inline : backtick(`) 1개로 감싸서 표시 e.g. `code to show` = code to show Code block : backtick(`) 3개로 감싸서 표시 e.g. ``` cod...

Mmistakes 본문 영역 너비, 글자 크기 수정

HTMLnote같은 포스트들은 텍스트 양이 상당히 많은데 본문 영역 너비가 좁아서 가독성이 떨어진다는 느낌을 받았다. 글자 크기도 너무 커서 짧은 문장도 줄바꿈이 자주 일어났다. 본문 영역 너비 페이지의 YAML Front Matter(---으로 감싸진...

블로그 업데이트

포스팅 해야하는 것(21.02.02) parametric search 하나 풀어보고 2110에 쓴게 param search 맞는지 vi v(10)으로 선언하고 v[10]이 원래 호출이 되나??(세그폴트 뜨지않나?)//boj 1806 boj 1324 풀고 정리 HTM...

21.02.03

작년에 한 것들 알고리즘(쉽배알, mit 6.006) 노트 정리(20.04 ~ 20.06) 기초 알고리즘 문제들(plzrun문제집)(20.08.16~21.01.12) 블로그 만들기

블로그 업데이트하기

포스팅 해야하는 것(20.11.25) 2261 질문 올려놓은거 답변 오면(탐색 이중으로 하는건 왜 시간초과 나는지, 중복된점 처리 관련) parametric search 하나 풀어보고 2110에 쓴게 param search 맞는지 1697(+-1, *2 문제)...

블로그 업데이트(mmistakes pull 완료)

처음 mmistakes를 fork해서 블로그를 만든 뒤 fetch를 하지않고 있다가 오늘 한꺼번에 모두 받았다. mmistakes의 master를 upstream으로 설정하고 다 받았는데 처음에 _config.yml이 다른 곳에 생겨서 위치가 바뀌었나 싶었다. 근데 ...

.

Exhaustive search는 이름을 잘 지은 것 같다. 하나하나 풀 때마다 기운이 지수함수 꼴로 빠져나가는 것 같다. 볼 때마다 탈진하는 것 같아 깃헙에는 Brute-force로 올려놓았다. exhausted가 익숙해서 시각적인 효과도 좀 존재하는 것 같다. ————...

풍성해진 블로그

추가하고 싶었던 것들이 있었는데 어쩌다보니 다 추가했다!!!! 검색 기능 상단 카테고리 옆에 검색 표시가 생겼다. 조금 있으면 없는게 어색해지겠지만 아직 있는게 신기하다. 클릭하면 내 포스트들의 제목, 본문을 검색할 수 있다. 검색 엔진은 algolia를 이용했고,...

8월 말부터 코로나가 다시 심해져서 사지방 이용을 못 했다. 부대 내에서도 예방에 더욱 힘을 쓰자는 취지로 다중이용시설을 금지했기 때문이다. 처음에는 일주일만 사용금지였지만, 한 주가 지나도 계속 유지되었다. 그렇게 사지방에 못가다가 9월 초에 휴가를 갔다와서 2주간 격리를 하게 ...

C++ I/O 헷갈리는 내용 정리2

원래는 문제별로 적으려 했는데 한번에 정리해놓고 보는게 좋을 것 같다. long int strtol (const char* str, char** endptr, int base) <cstdlib>에 정의되어 있다. base진법의 수 s...

블로그에 추가해야 할 기능들

추가해야 할 기능들 검색(제목, 본문 포함) 상단 카테고리 바 옆에 검색 기능 붙일 수 있던데 찾아봐야겠다. 댓글 기능 mmistakes 매뉴얼에는 disqus를 이용하면 된다고 나와있었는데 가입하고 하면 귀찮다고 들어...

잡담1

1. 4월 중순쯤에 자대로 전입오고 두 달간은 내가 배웠던 것들을 다시 한번 정리하는 시간을 가졌다. 6월 말부터 BOJ, goormide를 이용해 sourcebottle repo에 코드를 올리면서 문제를 풀었고, 저번 주에 처음으로 codeforces 라운드 문제를 풀어보았다. ...

C++ I/O 헷갈리는 내용 정리

헷갈리는 I/O 함수들 scanf의 포맷에서 delimeter를 직접 지정할 수 있다. ex) csv파일의 경우 "%d,%d"등으로 받으면 편함 <string>의 getline()과 <istream>의 getline ...

test2

This theme supports link posts, made famous by John Gruber. To use, just add link: http://url-you-want-linked to the post’s YAML front matter and you’re done...

Back to top ↑

Misc

노션 그래프 업데이트

notioncharts.io가 23년 5월 부로 서비스를 종료했다. 노션 DB를 사용해서 그래프를 만들어주는 웹 서비스들은 여러 개가 있었지만, 노션차트를 사용하던 이유는 아래와 같다. 간단하게 DB 연동 가능 무료로 최대 3개까지 그래프 생성 ...

Back to top ↑