분류 전체보기

1629 곱셈 https://www.acmicpc.net/problem/1629 난이도 및 유형난이도 : 실버 1유형 :   재귀시간제한 : 0.5초메모리제한: 128MB 문제자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오.입력첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.출력첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다.  문제풀이이 문제는 주어진 입력값에서 확인할 수 있듯이 A를 B번 곱해야 한다. 하지만, B의 값이 int의 최대값이기 때문에 최악의 경우 A를 약 21억번 이상 곱해야 한다. 따라서, 시간초과가 발..
10799 쇠막대기 https://www.acmicpc.net/problem/10799 난이도 및 유형난이도 : 실버 2유형 :   스택 문제여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다.쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다.각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다.레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다.아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이..
이 글은 삼성청년소프트웨어아카데미 2학기에 공통 프로젝트로 진행한 학습내용 기록 및 공유 플랫폼 MODAC 서비스의 게시판 Pagination 리팩토링 과정에 대해 정리했습니다. 기능설명 및 개발환경[개발환경]DB: MySQL 8.0.31Back-End: Java8, Spring Boot2.7.7, Spring Data JPATools: IntelliJ, Postman [기능설명]개선 대상: 게시판(피드) 게시글 조회 기능기능 설명: 현재 로그인한 사용자가 작성한 게시글 정보를 조회하는 기능기존 구현방법: 게시글 조회 시 게시글 데이터를 DB에서 조회하여 페이지 계산 로직을 통해 요청한 페이지에 해당하는 데이터 반환 [리팩토링 배경 설명 및 기존 구현 코드]MODAC 프로젝트에서 유저의 피드 목록을 조회..
비트마스크란?컴퓨터는 내부적으로 모든 자료를 이진수(비트)로 처리한다. 이런 컴퓨터의 연산방식을 이용한, 정수의 이진수 표현을 활용하여 문제를 해결하는 기법을 말한다. 비트(Bit) - 비트는 이진수(0과 1로 구성된 수)를 나타내는 말로 컴퓨터에서 사용하는 데이터의 최소 단위이다. - 비트는 1과 0의 값을 가질 수 있고 true(1) 또는 false(0)라는 상태를 나타낼수도 있다. - 우리가 사용하는 10진수는 0과 1로 구성된 비트(이진수)로 표현이 가능하다.  비트마스크의 장점수행시간이 빠르다.대부분의 연산이 O(1)의 시간복잡도를 갖는다.특정 원소의 존재 여부 판단 시 선형 탐색할 필요 없이 and 연산 결과가 0보다 큰지 검사코드가 짧다.집합 연산들을 비트 연산자로 작성하기 때문에 코드가 간..
자바 가비지 컬렉션(GC) 란?가비지 컬렉션(Garbage Collection, GC)은 메모리 관리 기법중 하나로 JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당했던 메모리 중 필요없게 된 메모리 영역에 할당된 주소들을 모아 주기적으로 제거하는 프로세스를 말한다. C/C++ 언어에서는 이러한 가비지 컬렉션이 없어 개발자가 수동으로 메모리 할당과 해제를 일일히 해줘야 했다. 반면, JAVA 언어에서는 가비지 컬렉터가 메모리 관리를 대신 수행해주기 때문에 JAVA 프로세스가 한정된 메모리를 효율적으로 사용할 수 있게 하고, 개발자 입장에서는 메모리 관리, 메모리 누수 문제보다 로직 작성에 더 집중할 수 있다는 장점이 있다. 하지만, GC에도 단점이 존재한다. 자동으로 처리해준다 해도 메모리가 언..
2206 벽 부수고 이동하기 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 난이도 및 유형 난이도 : 골드 3 유형 : BFS / 그래프 탐색 문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센..
13549 숨바꼭질3 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 난이도 및 유형 난이도 : 골드 5 유형 : 최단경로 / BFS / 다익스트라 / 0-1 BFS 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에..
5427 불 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net 난이도 및 유형 난이도 : 골드 4 유형 : 그래프 탐색 / BFS / 구현 문제 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다.매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에는 불이 붙지 않는다. 상근이는 동서남북 인접한 칸으로 이동할 수 있으며, 1초가 걸린다. 상근이는 벽을 통과할 수 없고, 불이 옮겨진 칸 또는 이제 불이 붙으려는 칸으로 이동할 수 없다. 상근이가..
TCP 프로토콜의 연결 및 연결해제 과정TCP 프로토콜은 전송계층에서 동작하는 프로토콜로 송신자와 수신자가 연결된 상태에서 데이터를 주고 받는 연결 지향적 프로토콜이다. TCP 프로토콜은 3 way handshake 연결과정을 통해 송수신자를 연결한 후 데이터를 주고받는 통신을 진행한다. 데이터 전송이 종료되고 나면 4 way handshake 연결해제과정을 통해 통신을 종료한다.  3 way handshake (TCP 연결과정)3 way handshake 과정은 데이터를 전송하기 전 송신자와 수신자를 연결하는 과정으로 통신할 네트워크 장치 간 논리적 접속 상태를 만들기 위해 사용한다. 이 과정을 위해 TCP 세그먼트 헤더에 존재하는 ACK와 SYN 비트가 사용된다. 3 way handshake TCP ..
인덱스(Index)인덱스는 관계형 데이터베이스에서 추가적인 쓰기작업과 저장공간을 활용해 데이터베이스 테이블에 저장된 데이터의 검색 성능을 높이기 위한 자료구조를 말한다. 특정 컬럼에 인덱스를 설정하면 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 물리적 주소와 함께 저장된다. 인덱스가 생성되고 해당 컬럼을 쿼리에서 조건으로 사용하게 되면, 옵티마이저에서 인지하여 생성된 인덱스를 사용하여 데이터베이스를 스캔한다. 즉, 데이터베이스 전체 데이터를 Full Sacn하지 않아 데이터를 효율적으로 조회할 수 있게 된다.  인덱스의 사용인덱스 사용시 장점검색 대상의 범위를 줄여 테이블을 조회하는 속도를 향상 인덱스 사용시 단점인덱스 생성에 따른 인덱스 정보를 저장할 추가적인 저장공간이 필요, 대략 테이블 크..
Je-rome
'분류 전체보기' 카테고리의 글 목록