전체 글 143

사과나무(다이아몬드)

현수의 농장은 N*N 격자판으로 이루어져 있으며, 각 격자안에는 한 그루의 사과나무가 심어저 있다. N의 크기는 항상 홀수이다. 가을이 되어 사과를 수확해야 하는데 현수는 격자판안의 사 과를 수확할 때 다이아몬드 모양의 격자판만 수확하고 나머지 격자안의 사과는 새들을 위해서 남겨놓는다. 만약 N이 5이면 아래 그림과 같이 진한 부분의 사과를 수확한다. 10 13 10 12 15 12 39 30 23 11 11 25 50 53 15 19 27 29 37 27 19 13 30 13 19 현수과 수확하는 사과의 총 개수를 출력하세요. ▣ 입력설명 첫 줄에 자연수 N(홀수)이 주어진다.(3

Algorism/Python 2022.03.14

격자판 최대합

격자판 최대합 5*5 격자판에 아래롸 같이 숫자가 적혀있습니다. 10 13 10 12 15 12 30 30 28 11 11 25 50 53 15 19 27 29 37 27 19 13 30 13 19 N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합 니다. ▣ 입력설명 첫 줄에 자연수 N이 주어진다.(1largest: largest=sum2 sum1=sum2=0 for i in range(n): sum1+=a[i][i] sum2+=a[i][n-i-1] if sum1>largest: largest=sum1 if sum2>largest: largest=sum2 print(largest) a에 list문 안에서 변수없이(_) for문을 돌려줍니다. 그 후, a를 ..

Algorism/Python 2022.03.14

프로세스 관리

1. Process 프로세스는 job, task라고 불리기도 하며 메인 메모리에 할당되어 실행중인 상태인 프로그램을 말합니다. 프로그램은 일반적으로 하드디스크에 저장되어 아무일도 하지 않는 상태입니다. 프로세스는 실행하면서 stack pointer, data, text, register 등 끊임없이 변합니다. 위 사진은 프로세스 상태 전이도를 나타낸 것입니다. New는 프로그램이 메인 메모리에 할당되는 상태를 말합니다. Ready상태는 할당된 프로그램이 초기화와 같은 작업을 통해 실행되기 위한 모든 준비를 마친 뒤, CPU가 프로세스를 실행하면 Running 상태가 됩니다. Waiting 상태는 프로세스가 끝나지 않은 시점에서 I/O로 인해 CPU를 사용하지 않고 다른 작업을 합니다. 해당 작업이 끝나면..

Studying/Roadmap 2022.03.13

운영체제의 구조와 원리

1. OS의 작업방식 Windows와 Mac Os같은 운영체제가 등장하기 전에는 MS-DOS라는 운영체제를 사용했습니다. MS-DOS는 Single tasking(단일 작업)밖에 하지 못했습니다. 예를 들어 수행해야 할 작업-1과 작업-2가 있다고 생각해봅시다. 작업-1은 CPU를 사용한 후 I/O 장치를 사용하고, 작업-2는 CPU만을 사용하는 작업이라고 예를 들어 보겠습니다 작업-1이 먼저 수행이 되면서 CPU를 사용하고 I/O를 사용하는 동안 CPU는 놀고 있음에도 불구하고 작업-2는 메모리에 올라가있지 않기 때문에 작업-1의 전체적인 작업이 끝나기 전까지 작업을 시작하지 못하였습니다. ( I/O 장치를 사용할 때도 마찬가지입니다. ) 이러한 유연하지 않은 구조는 컴퓨터 전체의 효율성을 떨어뜨렸습니..

Studying/Roadmap 2022.03.11

카드 역배치

import sys sys.stdin=open("input.txt", "rt") a = list(range(21)) for _ in range(10): s, e=map(int, input().split()) for i in range((e-s+1)//2): a[s+i], a[e-i]=a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' ') 먼저 맨 위의 리스트와 같이 출력하기 위해 a라는 list를 만들어줍니다. range(21)로 하게되면 20 index까지 만들어지게 됩니다. 그리고 카드의 배치를 바꿀 첫 구간(s)과 끝(e) 구간을 정해준 뒤, 반복문을 실행합니다. 반복하고자 하는 구간에 대한 반복문을 만들어야 하는데, 끝과 첫구간을 뺀 값에서 1을 더한 뒤,..

Algorism/Python 2022.03.11

운영체제란?

1. OS(Operating System) OS는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어입니다. 컴퓨터를 사용하면서 실행하는 모든 프로그램들은 운영체제에서 제어하고 있습니다. 많이 사용하는 Windows, Mac os, Linux 등 많은 운영체제가 있습니다. 이 운영체제는 컴퓨터의 하드웨어를 관리합니다. CPU, 메모리, 키보드, 마우스, 네트워크 등 을 관리하여 컴퓨터를 좀 더 효율적으로 사용하게끔 사용자에게 편의를 제공합니다. 2. Booting 사용자가 컴퓨터를 사용하려면 컴퓨터를 켜게 되죠. 이 때, 컴퓨터에서 사용자가 OS를 시동할 때 운영 체제를 시작하는 부트스트래핑(전원을 켜거나 재부팅을 할 때 적재되는 프로그램) 과정을 부팅이라고 합니다. 위의 사진은 컴퓨터의 구조를 단순화한 ..

Studying/Roadmap 2022.03.10

숫자열만 추출하기

문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만들어진 자연수와 그 자연수의 약수 개수를 출력합니다. 만약 “t0e0a1c2h0er”에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 됩니다. 즉 첫 자리 0은 자연수화 할 때 무시합니다. 출력은 120를 출력하고, 다음 줄에 120 의 약수의 개수를 출력하면 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. ▣ 입력설명 첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다. ▣ 출력설명 첫 줄에 자연수를 출력하고, 두 번째 줄에 약수의 개수를 출력합니다. ▣ 입력예제 1 g0en2Ts8eSoft ▣ 출력예제 1 28 6..

Algorism/Python 2022.03.10

Git과 GIthub의 차이

1. Git Git은 본인의 코드와 그 이력을 기록하고 관리하도록 돕는 버전 관리 시스템(VCS) 입니다. 버전관리는 시간에 따라 파일의 변경사항을 추적하고 기록함으로써 이전 버전으로 복구하거나 조회할 수 있는 기능을 제공하죠. GIt은 클라우드가 아닌 본인의 로컬 시스템에 설치되어 진행하는 프로그래밍 버전 기록을 스스로 관리할 수 있습니다. 이러한 GIt이 특별한 이유는 바로 브랜치(Branch)때문 입니다. 브랜치는 독립적으로 어떤 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있습니다. 이렇게 만들어진 브랜치는 다른 브랜치와 병합함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있습니다. 여..

호스팅이란?

1. 호스팅(Hosting)? 호스팅은 사업자가 주로 홈페이지의 서버 기능을 대행하는 것을 의미합니다. 호스팅의 종류를 살펴보며 차이점을 알아보겠습니다. 2. 웹 호스팅 본인이 HTML, CSS 같은 코드를 이용해 웹 페이지를 만들었다고해서 누구나 만든 사이트에 접속할 수 있는 것이 아니죠. 배포 과정을 거치고 도메인까지 연결을 하면 비로소 하나의 웹 페이지가 사이트가 되는 것입니다. 이 때, 개인이 서버를 구매하고 설치하는 것이 어렵기 때문에, 배포 과정을 전문업체에 맡깁니다. (임대의 개념) 3. 서버 호스팅 서버 호스팅은 서버 하나를 통째로 구매하여 서버 운영에 필요한 인프라, 기술력을 제공받을 수 있는 서비스입니다. 웹 호스팅과 웹 호스팅은 저렴한 가격으로 서버 및 인프라 구축이 필요 없지만, 서..

Studying/Roadmap 2022.03.09