https://www.acmicpc.net/problem/5972 5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net 다익스트라 알고리즘을 이용하여 최단거리를 구해주면 되는 문제이다. # https://www.acmicpc.net/problem/5972 import heapq n, m = map(int, input().split()) graph = [[]*(n+1) for _ in range(n+1)] INF = int(1e9) distance = [INF]*(n+1) for i in range(m): a, b, cost..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻❄️☁️https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 2차원배열에서의 회전할때 규칙과, 후진할 때 칸의 이동을 찾으면 풀 수 있는 시뮬레이션 문제이다 n, m = map(int, input().split()) r, c, d = map(int, input().split()) array = [] visited = [[False]*m for _ in range(n)] # 청소한 여부 기록 visited[r][c] = True # 방문처리 count = ..
https://www.acmicpc.net/problem/19598 19598번: 최소 회의실 개수 2개 회의실로 3개 회의를 모두 진행할 수 있다. 예를 들어, 첫번째 회의실에서 첫번째 회의를 진행하고 두번째 회의실에서 두번째 회의와 세번째 회의를 진행하면 된다. 1개 회의실로 3개 회의 www.acmicpc.net import sys import heapq input = sys.stdin.readline n = int(input()) times = [] temp = [] for _ in range(n): start, end = map(int, input().split()) times.append([start, end]) times.sort() # 시작 시간을 기준으로 오름차순 정렬 temp.appen..
https://www.acmicpc.net/problem/21314 21314번: 민겸 수 민겸 수 하나가 주어진다. 민겸 수는 대문자 M과 K로만 이루어진 문자열이며, 길이는 3,000을 넘지 않는다. www.acmicpc.net 규칙을 발견하면 바로 구현할 수 있는 문제이다 최솟값의 경우 M이 등장할때 M과 K를 최대한 적게 묶는다 K는 각각 하나씩 분해해서 묶고, M은 M끼리 묶는다 M/K/K/MM/K = 155105 최댓값의 경우 K가 등장할때 최대한 많은 M이랑 묶어주어야 한다. 그런데 K는 M보다 뒤에 오니까, 문자열을 선형탐색할 때 마지막 인텍스부터 첫번째 인덱스를 탐색해주어야 한다. MK/K/MMK = 505500 전체 코드는 다음과 같다 data = input() min_value = '..
시간제한이 0.5 인 문제 - 그래서 삽질을 좀 해야 했다.. https://www.acmicpc.net/problem/21318 21318번: 피아노 체조 피아노를 사랑하는 시은이는 매일 아침 피아노 체조를 한다. 시은이는 N개의 악보를 가지고 있으며, 1번부터 N번까지의 번호로 부른다. 각 악보는 1 이상 109 이하의 정수로 표현되는 난이도를 www.acmicpc.net x 부터 y까지 입력값을 받을 때마다 선형탐색으로 실수를 찾아내게 되면 시간초과가 뜰 것 같아서 DP 누적합으로 풀었다. 누적합 힌트를 보고 풀었고 풀이도 맞는데 시간초과가 나서 세세한 부분을 신경써주어야 하는 문제였다. 그런데 처음에는 dp를 n+1 길이로 해서 인덱스 값 헷갈리지 않게 하려고 했으나.. n+1 으로 하니 또 시간..
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 삼성 style의 빡구현 문제 1. 시간초과 난 풀이 문제점 : [i,j] 좌표가 new_clouds 배열에 속해있는지 확인하는 in 연산이 시간을 많이 잡어먹는다.. -> 이를 해결하기 위해서 visited 2차원 배열을 만들어서 방문 여부를 표시한다. # 21610 마법사 상어와 비바라기 n, m = map(int, input().split()) # delta 방향 dx = [0, -1..
IDEA : PES를 개선한 IPES. 128비트의 Key를 사용하여 64비트 블록을 암호화하는 알고리즘 Skipjack : 국가 안전 보장국 (NSA) 에서 개발한 암호화 알고리즘. IC칩에 내장되어 있다. 80비트의 key를 사용하여 64비트 블록을 암호화하며, 주로 전화기와 같은 음성 통신 장비에 삽입되어 음성 데이터를 암호화한다. SELECT 제품명, 단가, 제조사 FROM 제품 WHERE 단가 > ALL (SELECT 단가 FROM 제품 WHERE 제조사 = 'H') 객체 지향 설계 원칙 ISP : 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 객체지향 설계 원칙 중 하나. IP 주소는 네트워크 부분의 길이에 따라 다음과 같이 구분 가능하다 A Class : 0..
교착상태 - 둘이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스들이 점유하고 있는 자원을 요구하며 무한정 기다리는 현상 교착상태 발생 필요충분조건 1. 상호배제 - 공유자원은 한번에 한개의 프로세스만이 사용할 수 있어야 함 2. 환형대기 - 공유자원과 공유자원을 이용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야함 3. 점유와 대기 - 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함 4. 비선점 - 다른 프로세스에 할당된 공유자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함 교착상태 해결방법 예방 - 가장 비효율적..