전체 글 111

[백준] 1011 - Fly me to the Alpha Centauri - (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 풀이과정: 문제읽고 20분동안은 한참 생각해야했다. 거리가 8정도 일때 까지 가정해보고 써내려가보았는데, 규칙을 찾지 못했고 답을 보고서야 끼워맞추기 식으로 규칙을 찾을 수 있었다...! 어떻게 생각하면 코테 준비한지 한달정도가 된 나에게는 조금 어려운 문제가 아니었나 생각한다. 이 규칙을 어떻게들 찾으셨는지 놀라운데,, 결론부터 말하자면 ..

Coding/백준 2022.01.30

프로세스(Process) 관리, 자원(Resource)의 개념

OS에서 가장 많이 쓰이는 단어라 해도 과언이 아닌 프로세스는 실행을 위해 시스템(커널)에 등록된 작업이다. 커널에 등록되는 이유는 시스템을 잘 관리하고 성능향상을 위함이다. 자원이란, 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 객체이다. H/W 자원에는 프로세서, 메모리 등이 있고, S/W 자원에는 메세지, 시그널 등이 있다. 프로세스 관리에 대해 이해하려면 프로세스 상태(Process States)에 대해 먼저 이해해야한다. 먼저 Created상태는 어떤 작업이 커널에 등록된 상태이며, 이때 PCB가 할당된다. 여기서 쓸 수 있는 메모리 공간이 있느냐에 따라 ready로 갈지 suspended ready로 갈지 결정된다. 메모리가 있어서 ready상태로 가게 되었을 때, 프로세서(CPU)외..

CS/OS 2022.01.29

[완료] [Challenge] 음악 스트리밍 모바일 페이지 클론코딩

이번 Challenge는, 스트리밍 사이트 (모바일버전) 음악목록 및 재생화면 클론코딩이다. 레이아웃 잡는것은 나름대로 어렵지 않다고 생각이 되었고, 잘 떠올랐는데, 이상한곳에서 막혔다. 1. 먼저 보통 awesome font 라는 곳에서 폰트를 써왔었는데, 마땅한 폰트가 없어서 구글폰트 아이콘쪽에서 처음으로 받아왔고, 받아오는 과정에서 문제가 생겨 30분정도 헤맸다. 2. 그리고 오른쪽에 후광같이 비추는 기능이 box-shadow로 구현한 것인줄 모르고 한참 찾았고, 3. 마지막으로 오른쪽 재생바를 input type range로 구현하려다가 색깔이 제대로 맞춰지지 않아 다시 div로 구현하였다...ㅠㅠ 그래도 이쁘게 잘 만들어진것 같아서 너무 만족스럽고, 지금까지 html+css로 만든 작업 중에서 ..

[백준] 11729 - 하노이탑 - (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 풀이과정 : 하노이탑은 엄청 어릴때, 수학경시대회나 어려운문제집 같은 곳 보면 풀었던 기억이 있는데, 다시보니까 또 어려웠다... 재귀함수에 대해서 어느정도 알고있다 생각했는데도 알고리즘을 정확히 이해하는데 시간이 걸렸다. 우선 1번 2번 3번 기둥을 각각 start(시작점) by(경유) end(도착점)으로 정의하였으며 이는 각각의 상황에 따라 시작점이 경유점이 되기도, ..

Coding/백준 2022.01.29

Infix(중위표기법) -> Postfix(후위표기법), 그리고 스택 계산

중위표기법(Infix) 이란, 우리가 보통 연산을 할때 쓰는 방법이며, 피연산자(operand) 사이에 연산자(+,-,*,/)가 존재한다. 2 + 3 * 5 라는 식이 있을 때 '2', '3', '5' => 피연산자이고, '+', '*' 는 연산자, 그리고 이 모든것을 포함하여 토큰이라 부른다. 연사자도 두가지로 나뉜다. 이항연산자(항을 2개 요구) 2+3 에서 '+'는 이항연산자 라 할 수 있다. 단항연산자(항을 1개 요구) +6 에서 '+'는 양수임을 나타내는 연산자이며, 단항연산자이다. 후위표기법(Postfix) 이란 연산자가 피연산자 뒤에 오는 수식이다. 컴파일러가 사용하는 방식으로 스택을 사용하는 방법에 많이 등장한다. 그럼 앞의 2 + 3 * 5 수식을 Infix->postfix로 변환해보자...

운영체제의 역할˙구분

˙OS의 역할을 크게 세가지로 나눌 수 있다. User Interface(편리성) =>CUI, GUI, EUCI(특화된 UI, ex)MP3) Resource management(효율성) System management(시스템보호) OS의 구분 (동시사용자 수 / 동시실행 프로세스 수/ 작업수행방식) 동시 사용자수 Single-User System(우리가 보통 쓰는 system) (window, android) Multi-user System(Unix, Linux) 동시실행 프로세스 수 Single-tasking system => 시스템 내에 하나의 프로세스만 존재하기 때문에 간단. (ex. MS-DOS) Multi-tasking System => 동시에 여러개의 프로세스를 수행하기 때문에 OS가 복잡하다..

CS/OS 2022.01.28

Stack (LIFO, 순차적자료구조)

스택 자료구조란, 하나씩 쌓아올린 형태의 자료구조 이며, 그림과 같이 정해진 방향(한방향)으로만 쌓을 수 있다. Stack은 보통 세가지 연산 삽입(push), 삭제(pop) 그리고 지우지 않고 스택의 가장 위 값을 알려주는 (top)이 있다. 후에 나올 Queue와 반대 구조인 후입선출(Last-In-First-Out) 구조이다. 스택의 기본구조와 세가지 함수를 간단하게 구현해보았다. class Stack: def __init__(self): self.items=[] def push(self, val): self.items.append(val) def pop(self): try: return self.items.pop() except IndexError: print("스택이 비었습니다.") def to..

배열(Array) vs 리스트(list)

자료구조에서 배열이라 함은, 가장 기본적이고 순차적인 자료구조이며 매우 중요하게 다루기 때문에 대부분의 교재 및 강의에서 앞쪽에 배치되어있다. 배열과 리스트를 명확하게 구분하는것은 쉽지 않으며, 구조적 차이를 가지고 있다. Array =>연속된 메모리 공간에 할당 List => 메모리가 연속적이지 않고 다음 노드가 가르키는 주소값을 가지고 있다. C에서는 읽기 쓰기 밖에 지원이 안되는데 반면, Python의 리스트는 다양한 연산들 (append,pop,insert,remove,index)을 제공한다. 또 List는 용량을 자동조절하는 기능도 있다.(=Dynamic Array) 구현이 복잡하지만, 삽입/삭제 연산이 많을때는 리스트 자료구조를 사용하는것이 효율적이다.

[완료] [Challenge] 쇼핑몰(도서) 웹사이트 클론코딩

오늘은 JS없이 HTML+CSS만으로 쇼핑몰 도서코너 쪽을 반응형 웹사이트가 아닌 정적 웹사이트로 만들어보고자 한다. 당연히 뼈대만 있는 사이트이기 때문에 클릭하여도 아무런 반응이 없다. Book now 같은 버튼도 내부의 또는 태그로 만든것이 아닌 오로지 태그로 모양새만 똑같이 구현해보았다. 먼저 크게 3가지로 나누었다. 위에 노란색 부분(class="header") 중간의 책 부분(class="main__screen") 밑의 Top Adventures 부분(class="books") css코드는 나누어서 작성하는것을 선호하지만 한장짜리 웹사이트기에 하나의 style.cs 파일에 작성하였다. 코드 주소 : https://replit.com/@heebumpark/WeLoveYouBlueprint-1#in..

운영체제(OS)의 기본

운영체제란, 컴퓨터 HW를 효율적으로 관리하여 사용자에게 서비스를 제공하는 SW 하드웨어는 크게 3가지로 나뉜다. 프로세서 (CPU, GPU) 메모리(주기억장치, 보조기억장치) 주변장치 프로세서 => 컴퓨터의 두뇌역할을 하며 중앙처리장치라고도 불린다. CPU 안에는 레지스터, 연산장치, 제어장치가 들어가있고, 레지스터는 프로세서 내부에 있는 메모리다. 프로세서가 사용할 데이터를 저장하며 컴퓨터에서 가장 빠른 메모리다. 종류로는 데이터레지스터, 주소레지스터, 프로그램카운터(다음 실행할 명령어의 주소 보관), 명령어 레지스터(현재 실행하는 명령어 보관), 누산기 등이 있다. OS는 프로세서에게 처리할 작업 할당 및 관리를 하며 프로그램 간의 프로세서 사용시간을 조절해준다. 메모리 캐시(Cache) 프로세서 ..

CS/OS 2022.01.28