분류 전체보기
-
[코드업 1098번] 설탕과자 뽑기Coding Test/기타 2020. 9. 18. 00:44
# 문제 부모님과 함께 유원지에 놀러간 영일이는 설탕과자(설탕을 녹여 물고기 등의 모양을 만든 것) 뽑기를 보게 되었다. 길이가 다른 몇 개의 막대를 바둑판과 같은 격자판에 놓는데, 막대에 있는 설탕과자 이름 아래에 있는 번호를 뽑으면 설탕과자를 가져가는 게임이었다. 격자판의 세로(h), 가로(w), 막대의 개수(n), 각 막대의 길이(l), 막대를 놓는 방향(d:가로는 0, 세로는 1)과 막대를 놓는 막대의 가장 왼쪽 또는 위쪽의 위치(x, y)가 주어질 때, 격자판을 채운 막대의 모양을 출력하는 프로그램을 만들어보자. 입력 첫 줄에 격자판의 세로(h), 가로(w) 가 공백을 두고 입력되고, 두 번째 줄에 놓을 수 있는 막대의 개수(n) 세 번째 줄부터 각 막대의 길이(l), 방향(d), 좌표(x, y..
-
[코드업 1092번] 함께 문제 푸는 날Coding Test/기타 2020. 9. 17. 21:46
# 문제 같은 날 동시에 온라인 저지에 가입한 인원 3명이 규칙적으로 방문하는 방문 주기가 공백을 두고 입력된다. (단, 입력값은 100이하의 자연수이다.) 3명이 다시 함께 방문해 문제를 풀어보는 날을 출력한다. 입력 예시 3 7 9 출력 예시 63 Solution a, b, c = map(int, input().split()) day = 1 while day % a != 0 or day % b != 0 or day % c != 0: day += 1 print(day) 주목할 부분 최소 공배수를 생각해야 할 문제에서 %(modulo)를 활용한 테크닉을 기억해두자!
-
[Git] 간단한 git 동작원리Git 2020. 9. 17. 19:59
※ git 프로젝트의 데이터들은 파일 자체가 아닌 수정 내역을 저장하는 파일 시스템 상의 스냅샷이라고 볼 수 있다. # git 동작 원리 - 저장소 (Repository=Repo) : 실제 소스코드와 더불어 모든 작업 이력(ex. Commit 내역)이 담겨 있는 공간 - Working Directory : 작업할 파일이 있는 디렉토리 - Staging Area : 커밋(Commit)을 수행할 파일들이 올라가는 영역. add 명령과 관련되어 있다. - Git Directory : Git 프로젝트의 메타 데이터와 데이터 정보가 저장되는 디렉토리. Local에 있는 ".git" 폴더에 해당. 1. 업로드 과정 (1) Working Directory에서 특정한 파일을 추가하거나 소스코드 수정을 진행하면 add ..
-
[OS] 3-1. ProcessComputer Science/운영체제 2020. 9. 16. 23:41
# 프로세스(Process)의 개념 1. 프로세스 : 실행중인 프로그램을 의미한다. 2. 프로세스의 문맥(Context) : 프로세스의 현재 진행 상태를 알려주는 것 ∵ time sharing, multitasking 등의 실현은 각 프로세스의 문맥을 정확히 기록해두어야 가능하다! - 하드웨어 문맥 : CPU의 수행 상태를 나타냄 ex) Program Counter, 각종 register → CPU 관점에서 파악! - 프로세스의 주소 공간 : 어떤 자료구조가 어떤 값을 가지고 있는지, 어떤 함수가 호출되고 return되는지 등을 파악함 ex) code, data, stack → 메모리 관점에서 파악! - 프로세스 관련 커널 자료 구조 ex) PCB(Process Control Block), Kernel ..
-
[Git] git 시작하기 : 기본 사용법Git 2020. 9. 15. 22:33
이전에 프로젝트를 하며 열심히 github을 사용했었지만, 꽤 오랜시간 잘 사용하지 않으니 다시 배워도 다시 까먹어버리는 git 사용법입니다. CLI 환경, 소스트리 사용 등 여러 방법으로 github을 사용할 수 있어 어떤 방법을 선택해 github을 관리할지 헷갈리기도 합니다. 그래서 나동빈 님의 [Git으로 시작하는 협업 및 오픈소스 프로젝트]를 통해 공부한 Github 사용법을 요약 정리하고 사용하려고 합니다. # Remote 저장소와 Local 저장소 준비하기 1. https://github.com 에서 회원가입 후 repository를 만든다. 2. https://git-scm.com에서 git 다운로드 파일을 다운받고 모든 설정을 default로 두며 설치를 진행한다. 3. 다운로드 후 Wi..
-
[OS] 2-2. System Structure & Program ExecutionComputer Science/운영체제 2020. 9. 15. 16:55
# 동기식 입출력과 비동기식 입출력 1. 동기식 입출력 (synchronous I/O) I/O 요청 후 입출력 작업이 완료된 후에야 CPU 제어권이 사용자 프로그램에게 넘어가는 것을 의미한다. - 구현 방법 1 · I/O가 끝날 때까지 CPU를 낭비시킨다. · 매 시점 하나의 I/O만 일어날 수 있다. (I/O 장치도 낭비) - 구현 방법 2 · I/O 요청 후 I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗는다. · I/O 처리를 기다리는 줄에 해당 프로그램을 줄 세운다. ex) A 프로그램 I/O 작업을 줄 세우고 B 프로그램에 CPU를 할당했는데 B도 I/O를 요청하면, B 프로그램 I/O 작업도 줄 세우고 C 프로그램에 CPU를 할당한다. (∴ CPU도 I/O도 끊김 없이 자신의 작업을 ..
-
[OS] 2-1. System Structure & Program ExecutionComputer Science/운영체제 2020. 9. 9. 19:49
# 컴퓨터 시스템 구조 1. Computer (전문가적 입장에서) - CPU : 매 클럭 사이클마다 Memory에서 Instruction(기계어)을 읽어서 실행한다. Memory 및 I/O device의 local buffer에 접근할 수 있다. - Memory : CPU의 작업 공간이다. 원래는 CPU만 접근 가능한 공간이지만 DMA controller가 있다면 이 역시 접근이 허용된다. 2. I/O device - 키보드, 마우스 : 입력장치 - 모니터, 프린터 : 출력장치 - 디스크 : 보조기억장치이자 입출력장치 (디스크에서 내용을 읽으면 입력장치, 디스크에 내용을 저장하면 출력장치) # 컴퓨터 시스템 구조 (더 자세하게) 1. I/O device - device controller (장치 제어기)..
-
[코드업 1024번] 단어 1개 입력받아 나누어 출력하기Coding Test/기타 2020. 9. 8. 22:32
# 문제 단어를 1개 입력받는다. 입력받은 단어(영어)의 각 문자를 한줄에 한 문자씩 분리해 출력한다. 입력 예시 Boy 출력 예시 'B' 'o' 'y' My Solution characters = list(input()) for i in characters: print("'%c'" % i) 주목할 부분 input()으로 입력받은 문자열을 list() 함수로 리스트화 하면, 문자열이 각각의 문자로 나뉘어 리스트로 저장된다!