분류 전체보기
-
프로그래머스) 아이템 줍기 (lv.3)알고리즘/프로그래머스 2022. 8. 21. 13:41
https://school.programmers.co.kr/learn/courses/30/lessons/87694?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 탐색을 이용하여 최단 경로를 찾는 DFS/BFS의 문제 유형이다. 겹치도록 제작된 사각형들의 바깥 테두리따라 시작 지점부터 최종지점까지 최단 경로를 구하는 문제이다. 여기서 주의할 점은 칸이 아닌 테두리를 이용하여 경로를 이용하는 것으로 1개 간격으로 테두리 모양을 이룰 경우 이를 같은 칸으로 인식할 수 있기 때문에 보드의 크기와 모든 수를 2배로 하여 경로를 구한 ..
-
백준21610) 마법사 상어와 비바라기 (lv.골드5)알고리즘/백준 2022. 8. 19. 17:41
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 시뮬레이션 및 구현 유형의 문제이다. 문제의 단계는 다음과 같다. 이동방향은 (0, -1), (-1, -1), (-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1)이다. n*n 만큼의 board와 , m 번의 이동방향 및 이동 카운트가 주어진다. 처음 구름의 위치는 (n-2, 0), (n-2, 1), (n-1, 0), (n-1, 1)이다. 구름이 주어진 ..
-
동시성 제어데이터베이스 2022. 8. 18. 22:36
동시성 제어 동시성 다중 사용자 환경에서 동시에 여러 트랜잭션이 수행될 때 데이터베이스의 무결성 및 일관성을 유지 하고 트랜잭션의 직렬화 수행을 보장 하도록 트랜잭션 간의 데이터 접근을 제어하는 것을 말하며, 다중 사용자 환경을 지원하는 DBMS의 경우에는 반드시 동시성 제어(병행제어)가 지원되어야 한다. 동시성 제어가 이루어 지지 않는다면 ? 동시성 제어가 이루어 지지 않아 데이터 베이스의 직렬성이 결여될 경우 다음의 문제점이 발생할 수 있다. 문제점 설명 갱신손실 (Lost Update) - 두 개 이상의 트랜잭션이 한 개의 데이터를 동시에 갱신(Update)시 발생 - 하나의 트랜잭션이 갱신한 내용을 다른 트랜잭션이 덮어씀으로 갱신이 무효화되는 경우 - 트랜잭션 종료 이전에 다른 트랜잭션이 갱신을 ..
-
프로그래머스) 전력망을 둘로 나누기(lv.2)알고리즘/프로그래머스 2022. 8. 17. 12:12
https://school.programmers.co.kr/learn/courses/30/lessons/86971?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 완전탐색의 문제 유형으로 그룹을 나누고 각 그룹의 갯수 차를 구하는 문제이다. union_find를 이용하여, 부모를 찾고 부모가 같은 그룹의 갯수차를 구하는 방법으로 진행했다. from collections import defaultdict import math def solution(n, wires): answer = math.inf def find_answer..
-
가비지 컬렉션 GC(Garbage Collection)JAVA 2022. 8. 5. 19:20
GC 란? 가비지 컬렉션은 자바의 메모리 관리 방법 중의 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 주기적으로 삭제하는 프로세스를 말한다. 장점 C나 C++에서는 이러한 가비지 컬렉션이 없어 프로그래머가 수동으로 메모리 할당과 해제를 일일이 해줘야 한다 Java는 JVM에 탑재되어 있는 가비지 컬렉터가 메모리 관리를 대행 개발자 입장에서 메모리 관리, 메모리 누수(Memory Leak) 문제에서 대해 완벽하게 관리하지 않아도 되어 오롯이 개발에만 집중 단점 개발자가 메모리가 언제 해제되는지 정확하게 알 수 없음 가비지 컬렉션(GC)이 동작하는 동안에는 다른 동작을 멈추기 때문에 오버헤드가 발생 GC가 너무 자주 실행되면 소프트웨어 성능 하락의 문제 발..
-
JVM 구조와 자바의 실행방식JAVA/Java 2022. 8. 5. 18:40
JVM이란 ? JVM(Java Virtual Machine)이란 스택 기반의 자바 가상 머신으로 컴파일러를 통해 바이트 코드로 변환된 자바 애플리케이션 파일을 클래스 로더를 통해 읽어 자바 API와 함께 실행하는 것으로 자바 프로그램 실행환경을 만들어 주는 소프트웨어을 수행한다. 자바 코드를 컴파일하여 .class 바이트 코드로 만들면 코드가 자바 가상 머신 환경에서 실행된다. JVM은 자바 실행 환경 JRE(Java Runtime Environment)에 포함되어 있습니다 .다른 하드웨어와 다르게 레지스터 기반이 아닌 스택 기반으로 동작한다. JVM을 사용함으로서 하나의 바이트 코드(.class)로 플랫폼에 영향받지 않고 모든 플랫폼에서 동작하도록 할 수 있다. 만약 C / C++에서는 컴파일 플랫폼과..
-
백준 14891) 톱니바퀴 (골드.5)알고리즘 2022. 8. 2. 19:11
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 시뮬레이션 유형의 문제이다. 문제의 조건은 다음과 같다. 1) 1은 시계방향 -1은 반시계방향을 말한다. 2) 주어진 시계의 회전을 실시할 때에는 양옆의 시계와 맞닿은 부분을 확인하여 만약 서로 다른 극을 가지고 있으면 회전, 아니면 회전하지 않는다. 3) 서로 같은 극을 가진 시계를 만날 때까지 회전은 퍼져나간다. 4) 최종 시계의 모양에서 12시 방향의 극이 N극일 때 각각 1, 2, 4,..
-
백준 14503) 로봇청소기 (골드.5)알고리즘 2022. 8. 2. 19:03
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 시뮬레이션 유형의 문제이다. 문제의 조건은 다음과 같다. 1) 청소기가 바라보는 방향은 북동남서의 순서로 나타낸다. 2) 청소기가 바라보는 방향에 청소할 곳이 없거나 벽이면 왼쪽으로 회전한다. 3) 바라보는 방향에 청소할 곳이 있으면 이동하여 청소하고 해당 방향에서 반복한다. 4) 청소할 곳이 없으면 바라보는 방향을 유지하고 한칸 후진하여 해당 위치에서 반복한다. 5) 청소할 곳이 없고 후진하..