Posts by Category

오답노트

[BOJ] 이동하기 C++ 풀이

November 19 2021

문제 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다.

[BOJ] 동전1 C++ 풀이

November 18 2021

문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다.

[BOJ] 곱셈 C++ 풀이

November 16 2021

문제 자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오.

[BOJ] 행렬 제곱 C++ 풀이 [분할정복]

November 11 2021

문제 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다.

[BOJ] 수열의 점수 2036 C++ 풀이

November 03 2021

문제 n개의 정수로 이루어진 수열이 있다. 이 수열에서 한 정수를 제거하거나, 또는 두 정수를 제거할 수 있다. 한 정수를 제거하는 경우에는 그 정수가 점수가 되고, 두 정수를 제거하는 경우에는 두 정수의 곱이 점수가 된다. 이를 반복하여 수열에 아무 수도 남지 않게 되었을 때, ...

[BOJ] 난로 15553 C++ 풀이

October 31 2021

문제 구사과의 방에는 난로가 하나 있다. 구사과는 절약 정신이 투철하기 때문에, 방에 혼자 있을 때는 난로를 되도록 켜지 않는다. 구사과는 방에 친구가 왔을 때는 항상 난로를 켠다.

[BOJ] 줄 세우기_2631 C++ 풀이

February 26 2021

문제 N명의 아이들이 임의의 순서로 줄을 서 있을 때,번호 순서대로 배치하기 위해 옮겨지는 아이의 최소 수를 구하는 프로그램을 작성하는 문제이다.

[BOJ] 크게 만들기_2812 C++ 풀이

February 25 2021

문제 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오.

[BOJ] 계단 오르기_2579 C++ 풀이

February 24 2021

문제 계단의 아래 시작점부터 계단 꼭대기 까지 도착하는 게임으로 각 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 계단 오르는 데는 다음과 같은 규칙이 있다.

[BOJ] 멀티탭 스케줄링_1700 C++ 풀이

February 22 2021

문제 첫 줄에 멀티탭 구멍의 개수 N, 전기 용품의 총 사용횟수 K가 정수로 주어질때, 두 번째 줄에는 전기용품의 이름이 K이하의 자연수로 사용 순서대로 주어진다. 이때 하나씩 플러그를 빼는 최소의 횟수를 출력하는 문제이다.

[BOJ] 강의실_1374 C++ 풀이

February 21 2021

문제 N개의 강의가 있고 각 강의의 시작 시간과 끝나는 시간이 주어진다. 최대한 적은 수의 강의실을 사용하여 모든 강의가 이루어 지게 하고싶다고 할때 필요한 최소 강의실의 수를 출력하는 프로그램을 작성하라.

[BOJ] 트리의 순회_2263 C++ 풀이

February 15 2021

문제 n개의 정점을 갖는 이진 트리의 정점에 1부터 n까지의 번호가 중복 없이 매겨져 있다. 이와 같은 이진 트리의 인오더와 포스트오더가 주어졌을 때, 프리오더를 구하는 프로그램을 작성하시오.

[BOJ] 병든 나이트_1783 C++ 풀이

February 14 2021

문제 N x M 크기의 체스판에서 병든 나이트는 가장 왼쪽 아래 칸에 위치해 있고 다음과 같은 4가지 방식으로만 이동할 수 있다.

[BOJ] 찾기_1786 C++ 풀이

February 11 2021

문제 첫째 줄에 문자열 T가 주어지고 두번째 줄에 부분 문자열 P가 주어진다. T와 P는 알파벳 대소문자와 공백으로만 이루어져 있다. 이때 T문자열에 P부분 문자열이 총 몇번 일치하고 어느 위치에서 일치 하는지를 출력하는 문제이다.

[BOJ] 오큰수_17298 C++ 풀이

February 08 2021

문제 크기가 N인 수열 A = A1, A2, …, AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다.

[BOJ] 벽 부수고 이동하기_2206 C++ 풀이

February 06 2021

문제 N X M으로 표현된 맵이 있다. 0은 이동할 수 있는 곳을 나타내고 1은 이동할 수 없는 벽을 나타낸다. $($1,1)에서 $($N,M)으로 최단 경로로 이동하려 한다. 한칸에서 이동할 수 있는 칸은 상하좌우로 인접한 칸이며 한번 벽을 깨고 이동할 수 있다. 경로에는 시작하...

[BOJ] 말이 되고픈 원숭이_1600 C++ 풀이

February 05 2021

문제 원숭이는 상하좌우로 이동 가능하며 k번의 능력을 사용하여 체스의 나이트와 같은 8가지 방향으로 이동할 수 있다고 할 때, 격자판의 맨 왼쪽 상단에서 맨 오른쪽 하단 까지 이동하는데 걸리는 최소 이동회수를 출력 하는 문제이다.

[BOJ] 트리_4256 C++ 풀이

February 04 2021

문제 하나의 이진 트리를 전위, 중위 순회한 결과가 주여졌을때 후위 순회를 했을때의 결과를 구하는 문제이다. 입력으로는 테스트 케이스의 개수 $($tc), 노드의 개수$($n), 그리고 전위, 중위 순회한 결과가 주어진다.

[BOJ] 영역 구하기_2583 C++ 풀이

February 02 2021

문제 눈금의 간격이 1인 MxN(M,N ≤ 100) 크기의 모눈종이에 k개의 직사각형을 그릴 때, 이 직사각형을 제외한 나머지 부분이 총 몇개인지 출력하고 각 나머지 부분의 넓이를 출력하는 문제 이다.

[BOJ] 문자열 폭발_9935 C++ 풀이

January 31 2021

문제 입력된 문자열이 폭발 문자열을 포함하고 있으면 모든 폭발 문자열을 폭발 시키고 폭발 문자열이 폭발되어 이어져서 새로 만들어진 문자열에도 폭발 문자열이 생성되었을 시, 생성된 폭발 문자열 또한 폭발 시켜준다. 폭발 문자열이 문자열에 없을 때 까지 반복한다. 폭발을 시키다가 남아...

[BOJ] 단지번호붙이기_2667 C++ 풀이

January 29 2021

문제 n x n 크기의 정사각형 지도에서 집이 있는 곳은 1, 없는 곳은 0으로 나타내며 상하좌우로 집이 연달아 붙어 있을경우 $($대각선은 제외)하나의 단지로 친다. 총 단지가 몇개인지와 각 단지속에 속하는 집의 수를 오름차순으로 출력하는 문제.

[BOJ] 하노이 탑_1914 C++ 풀이

January 28 2021

문제 n개의 원판을 두 가지 조건에 따라 1번 탑에서 3번 탑으로 전부 이동 시키는데 이동한 최소 회수를 출력하는 문제이다. 한번에 한개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.

[BOJ] 에디터_1406 C++ 풀이

January 23 2021

문제 단순한 컴퓨터 상의 에디터를 생각하며 커서의 이동을 어떻게 구현할지를 고민해 보면 되는 문제였다.

[BOJ] 뱀_3190번 C++ 풀이

January 12 2021

문제 NxN 정사각 보드위에서 길이가 1인 뱀이 맨위 맨 좌측에서 부터 오른쪽으로 이동하고 사과를 먹으면 길이가 늘어난다. ‘게임 시작 시간’ 으로 부터 t초가 지난 시간 뒤에 방향 전환을 하는것인데 문제를 잘못 이해하여 고생한 문제이다. 항상 문제를 접근하기 전에 문제를 정확히 ...

Back to top ↑

Algorithm

위상 정렬[파이썬 코드]

January 24 2022

선후 관계가 존재하는 그래프상에서, 위상 정렬을 수행하여 모든 선후 관계를 지키는 전체 순서를 계산할 수 있다.

[Algorithm] KMP 문자열 검색 알고리즘

February 09 2021

KMP 알고리즘 이란? KMP 알고리즘은 알고리즘을 고안한 세명의 이름 $($Knuth, Morris, Pratt)의 앞 글자를 따와 KMP 알고리즘이라 불리게 되었습니다.

[Algorithm] 슬라이딩 윈도우

February 08 2021

슬라이딩 윈도우 알고리즘은 투 포인터와 비슷하게 구간을 훑으면서 지나간다는 공통점이 있으나 슬라이딩 윈도우 알고리즘의 경우 훑는 구간의 넓이가 동일하다는 차이가 있습니다.

[Algorithm] 투 포인터

February 07 2021

투 포인터 알고리즘이란 1차원 배열의 각기 다른 원소를 가리키는 두개의 포인터를 조작해가며 원하는 값을 얻는 알고리즘을 말합니다.

[Algorithm] 너비 우선 탐색 BFS

January 30 2021

너비 우선 탐색(BFS)란 시작 정점과 인접한 모든 정점을 방문한 후에 다른 정점으로 이동해 해당 정점과 인접한 모든 정점을 반복하는 것을 더 이상 방문할 정점이 없을 때 까지 반복하는 것을 말합니다.

[Algorithm] 재귀함수 tracing

January 20 2021

재귀 함수의 수행 과정 재귀 함수란 자기 자신을 반복해서 호출하는 함수를 말합니다. 대부분의 재귀함수는 반복문으로 표현가능하며 반복문 또한 재귀함수로 표현이 가능합니다. 재귀함수는 연속된 함수호출을 종료하기 위한 base case와 recursive case로 구성됩니다.

Back to top ↑

Java

if-else, switch 성능비교

December 24 2023

최근에 회사 팀원분의 추천으로 ‘크리에이티브 프로그래머’라는 책을 읽어보았는데, 비판적 사고에 대한 중요성을 강조하고 있다.

[Java 기초] 입출력 I/O

December 29 2021

이번 포스트에서는 자바에서의 입출력에 대해서 알아보도록 하겠다. 👨‍🏫

[Java 기초] 열거형 - Enum

December 27 2021

이번 포스트에서는 자바의 상수값을 나열하여 저장하는 열거형 Enum에 대해서 알아보도록 하겠다. 👨‍🏫

[Java 기초] 예외처리

December 18 2021

이번 포스트에서는 자바의 예외처리에 대해서 알아보도록 하겠다. 👨‍🏫

[Java 기초] 인터페이스

December 17 2021

이번 포스트에서는 자바의 인터페이스에 대해서 알아보도록 하겠다. 👨‍🏫

[Java 기초] 다형성

December 16 2021

이번 포스트에서는 자바에서 중요한 개념중 하나인 다형성에 대해서 알아보도록 하겠다. 👨‍🏫

[Java 기초] 패키지

December 15 2021

이번 포스트에서는 자바의 패키지에 대해서 알아보도록 하겠다. 👨‍🏫

[Java 기초] 상속

December 13 2021

이번 포스트에서는 자바의 상속에 대해서 알아보도록 하겠다. 👨‍🏫

[Java 기초] 클래스

December 12 2021

이번 포스트에서는 자바의 클래스에 대해서 알아보도록 하겠다. 👨‍🏫

Back to top ↑

Spring

여러 계층에서의 Optional을 통한 NPE 처리

March 20 2022

null 이라는 개념을 고안했던 영국의 컴퓨터 과학자 Tony Hoare는 당시에 “존재하지 않는 값”을 표현할 수 있는 가장 편리한 방법을 null 참조라고 생각하였으나 이는 “10억불 짜리 큰 실수” 였다고 토로하였다.

주요 Lombok 에너테이션 정리

March 02 2022

이번 포스트에서는 Lombok라이브러리가 제공하는 에너테이션 중 자주 사용되는 에너테이션들을 살펴보도록 하겠다. 😎

스프링의 다양한 DI 방법

January 31 2022

DI $($의존관계 주입) : 애플리케이션 실행 시점에 외부에서 구현 객체를 생성하고, 그 참조값을 클라이언트로 전달해서 클라이언트와 서버의 의존관계가 연결 되는 것.

[JWT] 토큰 기반 인증 시스템 개요

July 28 2021

토큰 기반 인증 시스템이란? 토큰 기반 인증은 API를 사용하는 웹서비스 개발에 정말 많이 사용되고 있습니다. 토큰 기반 인증 시스템이 애용되는 이유에는 다음과 같은 이유가 있습니다.

Back to top ↑

Infra

[Server] APM 컴파일 수동 설치하기 1/3 - Apache-2.4.46

June 21 2021

Virtual Box + Ubuntu 20.04 설치 리눅스 환경에서 과제를 수행하기 위해 가상머신을 사용해야 했습니다. 가상환경으로는 VirtualBox, 우분투는 20.04 버전을 다운받아 사용하였습니다. Mac OS 베이스 환경에서 작업을 하였고 VirtualBox와 우분투...

Back to top ↑

CS

[Network] Cloud Computing

June 06 2021

클라우드 컴퓨팅 기술이 나오기 전까지 기업들은 자신들의 서버를 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 On-premise방식을 사용해 왔습니다.

[Network] TCP 흐름제어

June 03 2021

TCP란 기본적으로 신뢰성 있는 네트워크를 보장할 수 있도록 하는 프로토콜을 말합니다. 신뢰성있는 네트워크를 보장하기 위해서는 아래의 조건들을 모두 보장해야 합니다.

[Network] TCP 혼잡제어

June 02 2021

혼잡 $($Congestion) 이란? 송신측의 데이터는 지역망이나 인터넷으로 연결된 대형 네트워크를 통해 전달됩니다. 이때 만약 한 라우터에 데이터가 몰릴 경우, 자신에게 온 데이터를 모두 처리할 수 없게 되며 결국 라우터 내의 큐가 포화상태가 되어 패킷의 전달이 취소되거나 손실...

[Network] GET method VS POST method

May 22 2021

client가 서버에 정보를 보내는 방법에는 크게 GET과 POST, 이 두가지 방법이 있습니다. 둘다 데이터를 서버에 보내준다는 공통점이 있지만 다른 장단점도 존재하기 때문에 상황에 맞는 적절한 method를 선택하여야 합니다.

[Network] Application architectures

May 21 2021

Application architecture에는 예전부터 사용해 오던 client server architecture와 pc와 n/w에 향상이 있는 peer-to-peer $($P2P) architecture, 그리고 두 모델의 Hybrid 형태가 존재합니다.

[Network] Network Layer

May 08 2021

패킷망의 과제 응용 프로세스 간에 메시지를 교환하기 위해서는 패킷망을 통해 전달되어야 합니다. 전달 과정에서는 패킷의 목적지는 어떻게 확인 할 것인지, 경로를 어떻게 찾아갈 것인지, 체증이 생기면 어떻게 처리할 것인지 등 여러 문제를 해결해야만 송신측의 패킷이 수신측으로 잘 전달될...

[Network] Computer Network & Internet

April 24 2021

네트워크란? 네트워크란 Net + Work의 합성어로써 두대 이상의 컴퓨터들을 연결하고 서로 통신하며 자원을 공유하는것을 말합니다.

[OSTEP] OSTEP 2장 요약

March 13 2021

프로그램이 수행되는 과정에서 프로세서는 메모리로 부터 명령어를 fetch해 오고 해당 명령어를 decode하고 수행합니다.

Back to top ↑

STL

[STL] map & 레드블랙트리

January 17 2021

STL의 컨테이너 중 하나인 map에 대해서 알아보겠습니다. map은 key와 value로 이루어진 노드의 집합으로 이루어진 트리이며 트리내에 중복된 key값을 갖는 노드는 존재하지 않습니다. 따라서 map은 각각 key와 value에 해당하는 first, second pair 객...

[STL] 우선 순위 큐 priority_queue

January 15 2021

우선 순위 큐 (priority queue)에서 데이터의 삽입은 일반적인 큐와 같지만 삭제는 우선 순위가 가장 높은 것을 먼저 삭제하는 특징이 있다. 삽입된 데이터는 트리구조인 히프 (heap)를 사용하여 주어진 조건에 맞는 우선 순위 순으로 루트$($top)에서 부터 아래로 정렬...

[STL] 히프 heap와 트리 자료구조

January 14 2021

stl에서 제공하는 계층형 컨테이너 중 하나인 map과 heap은 트리라는 자료구조의 형태로 구현되어 있습니다. 따라서 오늘은 STL map과 heap에 대해 알아보기 전에 트리 자료구조에 대하여 알아보겠습니다.

[STL] 벡터 vector

January 13 2021

vector는 컨테이너형 자료구조이며 STL을 사용하여 동적 배열 구조를 구현한 것으로 크기가 가변적으로 변하는 배열이라고 할 수 있습니다. vector를 활용하여 배열에 비해 메모리를 효율적으로 사용할 수 있고 동적으로 값을 원하는 위치에 추가하거나 삭제할 수 있으며 vector...

[STL] 덱 deque

January 11 2021

오늘은 STL 컨테이너 라이브러리 중 하나인 deque$($Double Ended Queue)에 대해서 알아보겠습니다. 이름에서 부터 짐작할 수 있듯이 deque는 큐와 같이 선형 리스트 형태이지만 삽입, 삭제가 front와 back에서 둘다 가능하다는 특징이 있습니다. [STL]...

[STL] 큐 queue

January 06 2021

큐(queue)란 스택과 같이 데이터를 순서대로 저장하는데 샤용되는 컨테이너형 자료구조를 말합니다. 큐는 LIFO인 스택과 달리 FIFO 구조로 되어있습니다.

[STL] 반복자 iterator

January 04 2021

Iterator는 컨테이너의 메모리 주소를 가리키기 위한 포인터와 같은 객체입니다. Iterator를 통해 컨테이너 안의 특정 지점의 내용을 접근 할수 있다는 점에서 포인터와 비슷하다고 볼 수 있습니다.

[STL] 스택 stack

January 02 2021

스택은 컨테이너 클래스의 일종으로 다수의 데이터 객체들을 저장하는 자료구조를 나타내는 클래스이다. 스택은 push, pop 등의 멤버함수를 사용하여 LIFO의 특성에 따라 객체들을 삽입하거나 삭제할 수 있다.

[STL] 연결 리스트 Linked-list

December 31 2020

오늘은 데이터를 순차적으로 저장하는데 사용되는 자료구조인 연결 리스트에 대해서 알아보겠습니다. 기본적으로 연결 리스트는 배열과 같은 용도로 사용되지만 index값에 의해 접근되는 배열과 달리 link 포인터를 활용해서 접근한다는 차이점이 있습니다. 이러한 특징때문에 연결 리스트는 ...

[STL] Pair 활용법

December 30 2020

이번 포스트에서는 C++의 Pair 클래스에 대해서 정리해 보겠습니다. Pair 클래스는 주로 STL에서 데이터의 “쌍”을 표현할때 사용되며 두 객체를 하나의 객체로 취급할수있게 묶어주는 클래스입니다.

Back to top ↑

etc

Back to top ↑

C++

Back to top ↑

Spring Data

[JPA] N + 1 문제와 fetch join

May 16 2022

페치 조인은 앞의 지연로딩과 즉시로딩에 대해 알지 못하면 이해가 어려울수 있으므로 해당 포스트를 먼저 보시고 오시는걸 추천드립니다.

[JPA]영속성 컨텍스트

February 18 2022

영속성 컨텍스트 : 논리적으로 엔티티를 영구 저장하는 환경. EntityManager.persist$($entity);

Back to top ↑

Python

[Python] Numpy

January 05 2021

오늘은 행렬과 같은 다차원 배열을 쉽게 처리 할 수 있도록 지원해주는 파이썬의 라이브러리인 Numpy 에 대해서 알아보겠습니다. Numpy 배열 numpy에서 배열은 동일한 타입의 값들을 가지며 배열의 차원을 rank, 배열의 구조는 튜플 형태의 shape(행,열) 으로 나타내어 ...

Back to top ↑

Front_End

[Rendering] SSR & CSR

November 19 2021

렌더링$($Rendering)이란 화면에 표시할 웹 페이지를 만드는 과정을 의미한다.

CSS 문법 및 활용

January 09 2021

CSS는 HTML 문서에 색, 모양, 출력 위치 등 외관을 꾸미는 언어이며, CSS로 작성된 코드를 “style sheet”라고 합니다.

HTML 문법 및 활용

January 07 2021

웹페이지는 총 3가지 언어를 사용하여 구성되어집니다. HTML 은 웹페이지의 구조 맟 내용을, CSS 웹페이지의 모양을, 그리고 javascript 는 웹페이지의 동적인 응용프로그램을 작성하는데 사용됩니다. 이중 오늘은 HTML에 대하여 정리해 보았습니다.

Back to top ↑

Trouble Shooting

Back to top ↑

rocksDB

[rocksDB] Compaction priority option in LCS

August 23 2021

rocksDB의 기본 compaction 알고리즘인 Leveled compaction에는 총 4가지의 Compaction priority option이 존재합니다. 옵션에 대해 알아보기에 앞서 Leveled compaction이 어떻게 동작하는지 알아보겠습니다.

Back to top ↑

NodeJs

Back to top ↑