https://www.acmicpc.net/problem/1245 1245번: 농장 관리 첫째 줄에 정수 N(1 < N ≤ 100), M(1 < M ≤ 70)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄마다 격자의 높이를 의미하는 M개의 정수가 입력된다. 격자의 높이는 500보다 작거나 같은 음이 아닌 정수 www.acmicpc.net 1. BFS 산봉우리들을 세는 문제이다. 좌표는 상하좌우 + 대각선, 총 8방향으로 인접한 칸이면 이동할 수 있으며, 높이 값이 0 이면 산봉우리가 아니다 !!! 따라서 bfs 탐색 또한 높이가 0 보다 클 때만 처리했다. bfs에서 , 현재 확인중인 array[x][y] 값을 중심으로, 자기자신 보다 높은 위치를 만나면 (x, y) 에 해당하는 봉우리 라인은 산봉우..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻❄️☁️·iOS
Swift로 코딩테스트를 볼 일이 생겨서 준비를 하는 중에 정리해보고 있다. 새삼 Swift는 기본 문법의 내장 함수 파라미터 이름 하나하나가 정교하다는 느낌을 받는다.. ex) print() 함수의 separator: 라던지.. 그리고 고차원 언어이므로 지원하는 내장 함수나 기능이 풍부하다 !! Python 만큼 대중화(?) 되지 않아서 그렇지 있을건 다 있는 함수이고, 다만 코딩테스트 볼 때는 옵셔널한 값을 받지 않을것이므로 옵셔널 강제 해제를 해주고 있다. 원래 PS때 쓰던 언어가 파이썬이므로 파이썬과의 비교가 있을 수 있습니다(!) 백준 기준으로 보통 이렇게 많이 입력을 받는다 배열에 대한 정보가 주어지기 이전에 배열의 세로길이와 가로길이를 먼저 입력받고, 2차원 배열을 입력받는 코드에 대한 예시..
https://www.acmicpc.net/problem/10836 10836번: 여왕벌 입력의 첫 줄에는 격자칸의 가로와 세로 크기 M(2 ≤ M ≤ 700)과 날짜 수 N(1 ≤ N ≤ 1,000,000)이 자연수로 주어진다. 첫날 아침의 애벌레 크기는 모두 1이므로 입력에 주어지지 않는다. 다음 N개의 www.acmicpc.net 이 문제는 구현/시뮬레이션 유형이지만 한편으로는 greedy 알고리즘으로 규칙을 찾아야 한다. 핵심 아이디어는 다음과 같다. 왼쪽 아래에서부터 위, 오른쪽 방향으로 성장한 애벌레의 값을 갱신해주는데, 이 화살표 순서대로 숫자가 작아지지 않는다고 했으므로, 갱신되지 않은 (m-1) * (m-1) 칸들의 값은 자기자신의 바로 윗칸의 값을 가져오면 된다. 즉 자기자신의 바로 윗..
Container Technology 1. 컨테이너란 최근에는 컨테이너가 등장했다. Host 로부터 격리되어 독립적인 환경의 이미지 파일로부터 실행되는 프로세스이다. namespace와 cgroup 기술을 사용한다. 원래 VM도 OS 를 이미지화해서 만들지만 컨테이너에서 말하는 이미지는 어플리케이션 이미지이다. 내가 앱을 돌릴때 필요한 라이브러리, 어플리케이션 자체를 이미지화해서 만들어놓은 것이다. 2. 컨테이너와 VM의 종류 Linux LXC : OS 내에서 작동하는 경량화된 VM 구현. Docker : Docker 출시 이후로 컨테이너가 각광받기 시작함. 개발자들이 다양한 OS에서 작동하는 동일한 개발 환경을 구현하는 것이 목적. Docker Image 란 실행에 필요한 모든 것을 포함하여 docke..
https://www.acmicpc.net/problem/14567 14567번: 선수과목 (Prerequisite) 3개의 과목이 있고, 2번 과목을 이수하기 위해서는 1번 과목을 이수해야 하고, 3번 과목을 이수하기 위해서는 2번 과목을 이수해야 한다. www.acmicpc.net 진입차수가 0 이면 queue에 넣어주고, queue에서 빼서 현재 노드 탐색하고, 현재 노드에서 인접한 노드들의 진입차수를 1씩 뺸다. 그리고 진입차수가 0이 되면 다시 queue에 넣어준다. 현재 최소 학기를 구해야 하므로 , queue에 enqueue하는게 몇번째인지 세어주는 count 도 같이 넣어준다. from collections import deque n, m = map(int, input().split()) ..
1. Graph 자료 구조 Vertice와 edge들을 가지고 구성되어있는 자료구조이다. edge들은 vertices 간의 연결된것을 의미힌다. 2. 그래프 자료구조를 처리하기 어려운 이유 Graph Data는 복잡하다. : 전통적인 ML, DL 도구들은 simple data types에 특화되어 있다. ex) 이미지 데이터는 같은 구조와 사이즈여서 fixed-size grid graph로 생각할 수 있음 , 순차적인 text or speech 데이터 그래프는 유클리드 공간에 있지 않다. 즉, 좌표계로 표현할 수 없다. 시계열 데이터, 음성, 이미지 데이터가 2차원 및 3차원 유클리드 공간에 매핑을 할 수 있는 것과 달리 그래프 데이터는 매핑하기 어렵다. 그래프는 고정된 형태가 아니다. : 가변적인 크기..
https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 숨바꼭질 1 번문제와 문제는 같은데, 업그레이드 된 부분은 수빈이가 동생을 찾을 수 있는 가장 빠른 시간에 대한 경로를 저장해두어야 한다는 것이다. 경로 저장을 위해 note라는 배열을 생성한다. for nx in [now-1, now+1, now*2]: if 0
https://www.acmicpc.net/problem/22869 22869번: 징검다리 건너기 (small) $N$개의 돌이 일렬로 나열 되어 있다. $N$개의 돌에는 수 $A_{1} A_{2} ... A_{i} ... A_{N}$로 부여되어 있다. 가장 왼쪽에 있는 돌에서 출발하여 가장 오른쪽에 있는 돌로 건너가려고 한다. 항상 오른쪽으 www.acmicpc.net 징검다리 건너기 (large) 문제와 거의 동일하게 풀었다. 다만 마지막에 dp[-1] 칸이 값이 k보다 작거나 같은지 확인해주면 된다. import sys input = sys.stdin.readline n, k = map(int, input().split()) array = list(map(int, input().split())) I..