https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net dfs 로 모든 경우를 탐색하는 브루트포스로 풀었다 그런데 코드가 내가 봐도 안예쁘긴하다 다시 리팩토링해봐야겠다 함수를 애용하자 ㅎㅎ ;; import sys import copy sys.setrecursionlimit(10**6) n, m = map(int, input().split()) array = [] total = 0 answer = int(1e9) camera = [] vis..
분류 전체보기
https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net 전형적인 dfs/bfs 문제라고 생각함 나는 bfs로 풀었다 from collections import deque r, c = map(int, input().split()) array = [] sheep = 0 wolf = 0 for i in range(r): array.append(input()) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] visited = ..
https://www.acmicpc.net/problem/2461 2461번: 대표 선수 입력의 첫 번째 줄에는 학급의 수를 나타내는 N과 각 학급의 학생의 수를 나타내는 M이 하나의 빈칸을 사이에 두고 주어진다. 단, 1 ≤ N, M ≤ 1,000이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 www.acmicpc.net 입력 받은 각각 학급별 선수들을 오름차순으로 정렬하였다. 그리고 pointer 처럼 각각의 0번째 인덱스 값들을 찍어서 비교한다 12 16 43 67 7 17 48 68 14 15 54 77 이 경우 max_value - min_value 값은 14 - 7 = 7 이 된다. 오름차순 정렬에서 , 최댓값과 최솟값의 차이를 줄이기 위해서는 min_value 값을 크게 만들어주기 위해 ..
리눅스 시스템에서의 로그 기능 1. Syslog(rsyslogd) - 전통적인 리눅스 로그 통합 관리 기능 Text Data (cat이나 grep 명령어로 확인할 수 있음) syslog 설정에 따라 선별된 이벤트만 기록한다. 재부팅 후에도 로그 확인이 가능함 /var/log 에 저장된다. /etc/rsyslog.conf 파일에 저장할 로그의 종류 및 우선순위를 설정할 수 있고, 수신한 로그를 /var/log 디렉토리의 각 파일로 전달함. 2. Systemd Journald Log (systemd-journald) - systemd 가 사용되면서 systemd-journald 가 추가됨 binary data 형태로 저장되므로 특별한 명령어를 사용해야 한다 (journalctl) 시스템에서 발생하는 거의 모..
systemd 란? 기존에 linux에서는 init 프로세스로 서비스와 프로세스를 관리했다. 현재의 최신버전 리눅스에서는 systemd 데몬으로 init 프로세스의 역할을 대체하고 있다. systemd 로 대체된 이후로 Run-Level 을 사용하지 않는다. Run-Level 대신 Target Unit을 사용한다. systemd 는 리눅스에 도입되고 있는 PID1 번 프로세스이다. 시스템 관리, 로그 관리, 서비스 관리, 초기화 스크립트 관리 등의 시스템 관리와 전반적인 작업을 수행하고 있다. init 프로세스에서 사용하던 서비스들은 스크립트 형태였던 반면, systemd로 대체되면서 이는 Service Unit으로 제공된다. 동작 중인 systemd process를 확인하는 명령어 ps -ef syst..
Interrupt 현대의 운영체제는 인터럽트에 의해 구동된다라는 말이 있을 정도이다. 프로그램을 실행하는 도중에 예기치 않은 상황이 발생하는 경우, 실행을 중단하고 발생한 상황에 대한 처리가 먼저 필요하다고 CPU에게 요청하는 것이다. CPU는 Interrupt line 을 통해 Interrupt가 발생되었는지에 대해 안다. CPU는 한 명령을 수행한 후 interrupt line을 확인한다. Timer Interrupt 한 프로그램이 CPU를 독점하는 것을 방지하기 위해서 Timer라는 하드웨어는 Timer Interrupt를 사용한다. 예를들어 무한루프, while문과 같은 경우 프로그램이 종료되지 않을 것이고, I/O를 하지도 않을 것이다. 이렇게 한 프로그램이 CPU를 독점하게 된다면 다른 프로그..
CPU Scheduling이 필요한 이유 ? 멀티프로그래밍을 지원하는 운영체제에서 효율적으로 일을 처리하기 위해서 process 스케줄링이 필요하다. single CPU에서는 오직 하나의 process만이 CPU를 사용할 수 있으며, 다른 process들은 CPU를 사용하기 전까지 대기를 한다. ( 여기서 process 스케줄링은 thread 스케줄링과 같은 의미로도 사용할 수 있다. ) 스케줄링에는 두가지 이슈가 있다. CPU Burst에 들어온 프로그램이 여러게 있는데, 누구한테 먼저 줄것인가 ? CPU를 다 쓰고 I/O를 할때까지 한 process에게 CPU를 계속 줄것인가 아니면 중간에 CPU를 뺏어서 다른 프로세스에게 넘겨줄 것인가 ? CPU를 중간에 뺏지 않는다면 긴 프로세스 하나때문에 다른 ..
https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 코드를 입력하세요 SELECT a.FOOD_TYPE, a.REST_ID, a.REST_NAME, a.FAVORITES FROM REST_INFO a JOIN (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE ) b ON a.FOOD_TYPE = b.FOOD_TYPE AND a.FAVORITES =..