본문 바로가기

전체 글116

[BOJ] 17086번 아기 상어2 파이썬 문제 N×M 크기의 공간에 아기 상어 여러 마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 아기 상어가 최대 1마리 존재한다. 어떤 칸의 안전 거리는 그 칸과 가장 거리가 가까운 아기 상어와의 거리이다. 두 칸의 거리는 하나의 칸에서 다른 칸으로 가기 위해서 지나야 하는 칸의 수이고, 이동은 인접한 8방향(대각선 포함)이 가능하다. 안전 거리가 가장 큰 칸을 구해보자. 입력 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸과 상어의 수가 각각 한 개 이상인 입력만 주어진다. 출력 첫째 줄에 안전 거리의 최댓값을 출력한다. 풀이 #bfs 상어로부터의 거.. 2022. 8. 19.
운영체제 1. Introduction to Operating System 더보기 반효경 교수님의 운영체제 강의를 수강한 후 작성한 글입니다. 운영체제란 무엇인가? - 운영체제란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어로, 사용자 및 (운영체제를 제외한) 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다. - 협의 : 커널 (주로 사용되는 의미) 커널이란, 운영체제의 핵심 부분으로 메모리에 상주하는 부분을 의미한다. - 광의 : 커널 뿐만 아니라 각종 주변 시스템 유틸리티(메모리에 상주하지 않는 별도의 프로그램)까지 포함한 개념 운영체제의 목적 - 효율적인 자원의 관리 - 프로세서, 기억장치, 입출력장치(이것들은 HW 자원에 해당) 등의 효율적인 관리가 OS의 핵심 기능이다. - 형평성 : 사용자 간의 형평성 있는 자원 분배를 지원한다. 특정 프로그램이 지나.. 2022. 8. 14.
[BOJ] 21608번 상어초등학교 파이썬 문제 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호가 매겨져 있고, (r, c)는 r행 c열을 의미한다. 교실의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N, N)이다. 선생님은 학생의 순서를 정했고, 각 학생이 좋아하는 학생 4명도 모두 조사했다. 이제 다음과 같은 규칙을 이용해 정해진 순서대로 학생의 자리를 정하려고 한다. 한 칸에는 학생 한 명의 자리만 있을 수 있고, |r1 - r2| + |c1 - c2| = 1을 만족하는 두 칸이 (r1, c1)과 (r2, c2)를 인접하다고 한다. 비어있는 칸 중에서 좋아하는 학생이 인접한.. 2022. 8. 13.
[BOJ] 2293번 동전1 파이썬 문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 경우의 수는 231보다 작다. 풀이 #dp 전체 문제인 k원을 구성하는 경우의 수를 구하는 것을 i원을 구성하는 경우의 수를 구하는 것으로 나누고, 이를 또다시 c원을 사용하는 경우에 i원을 구.. 2022. 8. 10.