본문 바로가기

전체 글

[BOJ]2178. 미로탐색 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 .. 더보기
[BOJ] 2606. 바이러스 문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수.. 더보기
그래프 탐색 기본 (DFS / BFS) 그래프 탐색 참고 영상 https://www.youtube.com/watch?v=gl5RhtU2mF8 https://www.youtube.com/watch?v=pcKY4hjDrxk DFS와 BFS DFS(Depth First Search)는 깊이 우선 탐색, BFS(Breadth First Search)는 너비 우선 탐색이다. 그림으로 알아보면 DFS는 탐색한 곳의 연결된 곳을 계속 찾아들어간다. 즉 1 -> 2 에서 3이 아닌 2와 연결된 4, 5로 탐색한다. 결국 탐색 방향은 1 -> 2 -> 4 -> 5 -> 3 -> 6 -> 7 이다. 이를 잘 생각해보면 마치 stack 개념과 비슷하다. 1과 연결된 2, 3을 stack에 추가하고, 맨 끝인 3을 pop하여 또 3의 연결부를 추가하고.. 이런 개.. 더보기
[BOJ] 10799. 쇠막대기 문제 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다. 아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향이다. 이러한 레이저와 쇠막대기의 배치는 다음과 같이 괄호를 이용하여.. 더보기
[BOJ] 1992. 쿼드트리 문제 흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다. 주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이 되고, 모두 1로만 되어 있으면 압축 결과는 "1"이 된다. 만약 0과 1이 섞여 있으면 전체를 한 번에 나타내지를 못하고, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축하게 되며, 이 4개의 영역을 압축한 결과를 차례대로 괄호 안에 묶어서 표현한다 위 그림에서 왼쪽의 영상은 오른쪽의 배열과 같이 숫자로 주어지며, 이 영상을 .. 더보기
WEEK00. 정글을 시작하며 [SW사관학교 정글] 정글에 오기 전 정글에 가장 오고 싶었던 이유는 몰입 때문이다. 자생력 있는 개발자로 성장하기 위해 공부할 수 있는 최고의 환경을 누릴 수 있다. 3분 거리의 기숙사와 강의실, 함께 성장하는 동료들까지 이보다 좋은 조건은 없다고 생각했다. 특히 몰입에 끌렸던 이유는, 대학 진학 후 나의 삶이 다소 건조했기 때문이다. 나는 고등학교 시절을 꽤 치열하게 보냈다고 생각한다. 하루하루가 바쁘고 꽉 차있었는데, 그때나 지금이나 그 시간들이 힘들지 않았다고 생각한다. 나는 그런 매일들이 좋았고 (당연히 힘들 때도 있지만 ㅠ) 목표에 몰입하고 성장하는 과정이 엄청난 에너지가 됨을 알았다. 목표를 이뤄 대학에 진학할 땐 꿈이 많았다. 농구 동아리 우승, 교환 학생 가기, 멋진 과학자 되기 등 고등학생이 생각하는 수준에.. 더보기
첫 블로그, 첫 기록들 처음으로 시작한 블로그. 목적은 개발 공부와 일상 기록이다. 모든게 그렇듯 꾸준함이 제일 중요하고 어려울텐데, 짧게 1달 뒤에 블로그가 제법 가득해지면 좋겠다. 하루하루 공부한 것들을 기록할지, 5일을 모아서 기록할지는 모르겠지만! 우선은 매일매일 공부한 것들을 기록해서 열정을 보여줘야 할 때 사용하자. 더보기