전체 글 114

[완료] [Challenge] 당근마켓 웹사이트 (PC버전) 클론코딩

📌Only using HTML, CSS (No JS) . . . . . 소요시간: 약 2시간30분 후기 : 당근마켓 홈페이지보다 더 깔끔하고, 애니메이션도 귀엽게 잘 넣었다고 지극히 개인적으로 생각한다 ;ㅅ;....당근마켓 연락주세요....제발... 문제는 모바일에서 열었을때 비율이 안맞아서 깨진다는것... 아직 해결방법을 정확히 모른다. pc화면, 모바일 둘다 정상적으로 나오게끔 만들고싶은데 쉽지않다. 여튼 몇개의 더 깡통 웹사이트를 제작해본 뒤 반응형 웹사이트를 제작을 시작할 예정이다. 코드 : https://parkheebum95.github.io/html__css/ Document parkheebum95.github.io 웹사이트 링크(모바일 비율 안맞음) : https://parkheebum95..

[백준] 10828 - 스택 - (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이과정: 처음에 스택 클래스를 구현해야하나 해서, 어떻게들 푸셨는지 블로그들을 방문해서 확인해보았다. 파이썬은 다행히 따로 클래스를 구현하지않고 리스트로들 푸셔서 같은 방식으로 풀었는데 시간초과..! 역시 백준은 input함수만 쓰면 높은확률로 시간초과가 뜬다. 궁금해서 input vs sys.stdin.readline을 알아보았다. 결론적으로 말하자면 input ..

Coding/백준 2022.01.31

스레드 관리(Thread management)

프로세스는 자원을 할당받고 자원을 제어해서 우리가 원하는 목적을 달성한다. 이 때 프로세스가 이 자원을 제어하는 작업을 Thread로 표현된다. 또 하나의 프로세스 안에 스레드는 여러개가 될 수 있다. (제어가 여러개) 프로세스 내 스레드들 각각 스택들을 가지고 있으며 동일한 주소 공간을 공유한다. Thread Light Weight Process(LWP) =>자원은 공유하고 제어부분만 가지고 있기 때문에 가볍다. CPU 활용의 기본 단위 구성요소 => Thread ID, Register set, Stack 장점 자원 공유(Resource sharing) => 효율성 증가(커널의 개입을 피할 수 있다) 사용자 응답성(Responsiveness) => 일부 스레드의 처리가 지연되도, 타 스레드는 작업O 경..

CS/OS 2022.01.30

[백준] 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..