전체 글
-
JUNGLE_4주차SW사관학교 Jungle 2021. 1. 7. 11:22
컴퓨팅 사고로의 전환 4주차 주차별 키워드 - 동적 프로그래밍, 그리디 알고리즘 더 고민해볼 키워드 - 비트필드를 이용한 다이나믹 프로그래밍 풀어보자 문제를 설명하는 능력이 아주 부족하다는 생각은 하고 있었지만, 이번 기회에 다시 한번 느낄 수 있었다. 설명하는 연습도 꾸준히 해 나가도록 하자. 문제 정의 문제 해결 방안 구현 방법 SW사관학교 정글 WEEK04 시험 - 계단 오르기 click - 내리막길 click [포스팅] - 보석 도둑 click 보석 도둑💎 이번 주의 3번 문제였던 보석 도둑에 대해 알아보자. 도둑에게는 가방이 k개 있고, 각 가방에는 가방에 담을 수 있는 최대 무게보다 작거나 같은 보석을 1개씩 담을 수 있다. 이때, 훔칠 수 있는 보석 가격들의 합의 최대값을 구해야 한다. 단순..
-
Python - Variable ScopePython 2021. 1. 6. 23:32
Variable Scope 파이썬의 변수는 해당 변수가 선언된 범위 내의 범위에서만 유효하다. 이를 Scope라고 부른다. Local Scope, Enclosed Scope, Global Scope 그리고 Built-in Scope 이렇게 네가지 종류의 Scope가 있다. 각각의 Scope들은 아래와 같은 범위를 가진다. 각각의 Scope들에 대해 알아보자. Local Scope Local Scope는 현재 컴퓨터가 실행중인 함수의 Scope이다. 변수를 찾을 때, 가장 먼저 해당 변수가 Local Scope에 존재하는지 확인한다. locals()로 현재 local variable을 확인할 수 있다. x = 1 def func(): x = 2 print(locals()) func() 위의 코드를 실행하면..
-
./Missing Semester - 셸(Shell) 스크립팅컴퓨터 구조 2021. 1. 5. 22:45
./Missing Semester 연습문제 사이즈는 사람이 읽을 수 있을 법한 형식으로 (e.g. 454M instead of 454279954) 최신순 파일 정렬 색상화 되어 출력 [man ls] (https://www.man7.org/linux/man-pages/man1/ls.1.html)를 읽고 다음과 같은 방식으로 파일을 나열하는ls 명령을 작성합니다. l - 자세히 출력 h - 사람이 읽을 수 있을 법한 형식으로 출력 a - 숨겨진 파일까지 모두 출력 t - 시간순으로 출력 ls -lhat --color 다음을 수행하는 bash 함수marco 및polo를 작성합니다. marco를 실행할 때마다 현재 작업 디렉토리가 어떤 방식으로 저장되어야합니다. 그러면polo를 실행할 때 어떤 디렉토리에 있든 ..
-
Python - 17070 - 파이프 옮기기 1Problem Solving 2021. 1. 5. 00:01
파이프 옮기기 1 click 내리막길 문제의 응용 버전이다. [내리막길 포스팅] 파이프가 가로로 위치하고 있을 때를 0, 대각선으로 위치하고 있을 때를 1 그리고 세로로 위치할 때 2라고 하자. 가로와 세로인 경우 해당 칸만 빈칸이라면, 위치시킬 수 있다. 하지만, 대각선인 경우, 해당 칸 위쪽과 왼쪽까지 빈칸이어야 위치시킬 수 있다. 가로 세로 대각선인 경우를 각각 탐색해 나가야 함으로, 각 칸에 길이 3인 배열을 추가한 3차원 배열(dp)을 만들었다. 이 배열에는 (n,m)으로 갈 수 있는 경우의 수를 저장할 것이다. 방문여부를 확인하기 위해서 dp배열의 초기값은 모두 -1로 설정했다. 방문한 지점은 0으로 변경해주어 방문 여부를 체크하기 위함이다. dp[n-1][m-1]은 [1,1,1]로 설정해 주..
-
Python - 1520 - 내리막길Problem Solving 2021. 1. 4. 23:26
기존에 활동하던 블로그에서 옮겨온 포스팅 입니다. 내리막 길 click 2020.10.13 오늘 내내 이 문제를 잡고 씨름했다.⚡ 먼저 두 시간 동안은 접근을 잘못해 고생했다. 어설프게 dp 점화식을 찾았다. 입력 받은 리스트의 첫 줄 부터 차근차근 값을 쌓아나가는 방식이었다. 만약에 직사각형의 아래 칸으로만 이동할 수 있고, 윗 행으로는 이동하지 못한다면 맞는 풀이었지만, 문제에서는 그런 조건이 없었기에 당연히 틀렸다. 반례 4 4 16 9 8 1 15 10 7 2 14 11 6 3 13 12 5 4 이 반례처럼 'ㄹ'자로 내려갔다 올라갔다를 반복할 수도 있는 것이다. 결국 검색을 통해 풀이 방법을 찾아보았다... DFS를 통해 길을 탐색하고, 여기에 DP를 이용해 시간을 단축시켜 푸는 문제였다. 예제..
-
./Missing Semester - 수업 개요 + shell컴퓨터 구조 2021. 1. 4. 00:43
./Missing Semester 2021 - 01 - 04 를 시작으로 매일 강의 한 개씩 수강해 나갈 예정이다. 1년 전 ROS, Autoware를 설치하고 사용해보며 처음 Linux, Shell을 접했는데, 이번 기회를 통해 기초를 탄탄히 해볼 계획이다. 꾸준히 수강하자! 연습문제 /tmp에 missing이라는 새로운 경로를 만들어 보세요 . touch라는 프로그램을 관찰해보세요. man 프로그램이 도움이 될겁니다. Description: Update the access and modification times of each FILE to the current time. A FILE argument that does not exist is created empty, unless -c or -h is..
-
Python-2098-외판원 순회Problem Solving 2021. 1. 3. 01:50
외판원 순회 click 2주일 전에 외판원 순회2를 풀고(외판원 순회2가 더 쉬운 난이도의 문제이다.) 도전해 봤는데, 실패했었다. 이번에는 DP와 비트마스킹을 사용해 풀어야한다는 사실을 인지하고, 풀었고, 칠판에 적으면서 2시간 가량 푼 끝에 정답을 맞출 수 있었다. 비트연산자를 사용해서 사고하기가 아직은 수월하지 않다는 생각이 들었다. 관련 문제들을 수요일까지 4문제 정도 더 풀어볼 예정이다. 문제 분석 비트마스크를 사용해 푸는 문제이다. 비트연산자를 다루는데 아직 익숙하지 않다면, 11723-집합 문제를 먼저 풀어보는 것을 추천한다. 1부터 N까지 번호가 매겨져 있는 도시들을 모두 거쳐 다시 원래의 도시로 돌아오는 최소 비용을 구하는 문제이다. 도시간에 이동하는데 드는 비용은 대칭적이지 않으며, 0..
-
Django - .gitignore활용 (feat. migrations)Project/git 2021. 1. 2. 01:48
django 웹 개발을 진행 중일 때, 어떤 파일들을 .gitignore에 포함시켜야 할까? Jump to django 문서를 참고해 아래의 파일들을 .gitignore를 사용해 commit목록에서 제외시켜 왔다. .idea db.sqlite3 __pycache__ *.pyc venv .idea 사용자 설정을 저장하는 파이참 전용 파일 db.sqlite3 SQLite의 데이터베이스 파일(다른 모델을 쓴다면, 그에 맞게 변경해 주어야 한다.) __pycache__, *.pyc python 프로그램을 실행시킬 때, 인터프리터는 프로그램을 bytecode로 먼저 컴파일한다. 이 파일들(*.pyc)을 __pycache__폴더에 저장해 놓고, 프로그램이 재실행될 때, 조금 더 빠르게 실행될 수 있도록 한다. .g..
-
How to start DjangoProject/Django 2021. 1. 1. 20:02
Pycharm에서는 django project를 생성하면 간단하게 프로젝트를 시작할 수 있다. VScode에서는 어떻게 시작해야 할까? 가상환경 설치 먼저 가상환경을 설치하자. 1. VScode를 관리자 권한으로 실행한다. 2. 빈 작업폴더를 생성하고 해당 파일을 open 3. VScode터미널을 실행하고, 아래의 명령어를 입력한다. cmd> python -m venv '가상환경 이름' 4. VScode에서 F1을 누르고, python: Select Interpreter를 검색 후 클릭한다. Python ~~~ ('venv')를 선택하자. VS code 터미널 창을 열고, 새로운 터미널을 '+'버튼을 눌러 추가하면, 자동으로 가상환경으로 진입된다. Django 패키지 설치 & 프로젝트 실행 가상환경 내에..
-
JUNGLE_3주차SW사관학교 Jungle 2021. 1. 1. 13:44
컴퓨팅 사고로의 전환 3주 차 주차별 키워드 - 그래프 탐색 기본, BFS, DFS, DFS(위상정렬) 더 고민해볼 키워드 - 벨만 포드 알고리즘 - SPFA SW사관학교 정글 WEEK03 시험 - 단지 번호 붙이기 click - 숨바꼭질 click - 트리의 지름 click 트리의 지름 이번 주의 3번 문제였던 트리의 지름에 대해서 알아보자. Tree(사이클이 없는 무방향 그래프)의 지름을 구하는 문제이다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것이다. 이때 양끝을 이루는 두 노드 사이의 거리를 트리의 지름이라고 한다. 트리의 지름을 어떻게 구할 수 있을까? 아래의 방법으로 트리의 지름을 찾을 수 있다. 트리 내의 임의의 점 A로부터 가장 먼 점 B를..