크래프톤정글 51

백준 1914번 하노이탑 파이썬 (재귀)

백준 1914번 하노이탑 파이썬 (재귀) 참고: https://www.acmicpc.net/problem/1914 https://namu.wiki/w/하노이의 탑#fn-1 무엇? 세 개의 장대 첫 번째 장대에는 반경이 서로 다른 N개의 원판이 있음 각 원판은 반경이 큰 순서대로 쌓여있다. 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮긴다. 한 번에 한 개의 원판만 다른 탑으로 옮김 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 함 이 작업을 수행하는데 필요한 이동 순서를 출력 단, 이동 횟수 K는 최소 입력: 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 100) 출력 첫째 줄에 옮긴 횟수 K N이 20 이하인 입력에 대해서만, 둘째 줄부터 빈칸을 사이에 두고 A, B..

백준 2468번 안전영역 파이썬 (BFS)

백준 2468번 안전영역 파이썬 (BFS) 참고: 무엇? 어떤 지역의 높이 정보 → 물에 잠기지 않는 안전한 영역은 최대 몇개? 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠김 어떤 지역의 높이 정보: 2^N * 2^N 배열 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수 안전한 영역이란 물에 잠기지 않는 지점들이 "상하좌우"로 인접하면서 그 크기가 최대인 영역 어떤 지역을 나타내는 2차원 배열의 행과 열의 개수를 나타내는 수 N (2

백준 10989 수 정렬하기3 (도수정렬)

백준 10989 수 정렬하기3 (도수정렬) 참고: https://www.acmicpc.net/problem/10989 무엇? N개의 수가 주어졌을 때, 이를 오름차순으로 정렬 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000) 둘째 줄부터 N개의 줄에는 수 수는 10,000보다 작거나 같은 자연수 왜? 정글 1주차 도수 정렬 복습 어떻게? 내 코드 수를 입력 받으면서 배열의 인덱스를 이용해 카운팅한다 카운팅 배열을 이중 for문으로 반복 count 값이 존재하면 count 값만큼 인덱스 출력 import sys input = sys.stdin.readline N = int(input()) array = [0] * 10001 # 수 입력 + 배열에 count for i in range(N): nu..

백준 1074번 Z 파이썬 (분할정복, 재귀)

백준 1074번 Z 파이썬 참고: https://www.acmicpc.net/problem/1074 무엇? 크기가 2N * 2N인 2차원 배열을 Z모양으로 탐색 N > 1인 경우, 배열을 크기가 2^N-1 * 2^N-1로 4등분 한 후에 재귀적으로 순서대로 방문 N이 주어졌을 때, r행 c열을 몇 번째로 방문하는지 출력 정수 N, r(행), c(열) 1 ≤ N ≤ 15 0 ≤ r, c < 2^N 왜? 정글 알고리즘 주차때 못 풀었거나 & 정답을 참고해서 풀었던 문제들 다시 풀기 어떻게? 재귀 브레이크 (2^0 * 2^0 크기의 배열에 도착했을 때) 1,2,3,4 분면 중 어디에 속하는지 판별 → 제일 작은 Z에 도달할 때까지 count 계산 (1분면 +0, 2분면 +1 … ) import sys inpu..

백준 10971번 외판원 순회 파이썬

백준 10971번 외판원 순회 (백트래킹) 참고: https://www.acmicpc.net/problem/10971 무엇? 1번부터 N번까지 번호가 매겨져 있는 도시들이 있고, 도시들 사이에는 길이 있다. (길이 없을 수도 있다) 한 도시에서 출발해 N개의 도시를 모두 거쳐 다시 원래의 도시로 돌아오는 경로를 구하려고 함 단, 한 번 갔던 도시로는 다시 갈 수 없다. (맨 마지막에 여행을 출발했던 도시로 돌아오는 것은 예외) 가장 적은 비용을 들이는 여행 계획은? W[i][j]는 도시 i에서 도시 j로 가기 위한 비용 W[i][j] 는 W[j][i]와 다를 수 있다. 모든 도시간의 비용은 양의 정수이다. W[i][i]는 항상 0이다. W[i][j]=0는 도시 i에서 도시 j로 갈 수 없는 경우 첫째 줄..

크래프톤정글 PintOS; Project 3 Diagram (Anonymous Page 까지)

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 참고: 카이스트 핀토스 pdf, 핀토스 GitBook 다 완전히 구현하지 못했다. project 3에서 주요하게 다루지 않는 project 1,2의 내용은 지웠다. (더 깔끔하게 만들 수 있다면 좋겠지만.) project 2 보다 더 어려웠다. 그 이유는 일단 초반에 가상메모리 시스템을 이해하고 체화하는 것이 쉽지 않았고(ㅠㅠ), project 3부터는 코드를 설계하는데 나의 결정을 많이 반영하도록 의도하고 있어서, 고민하고 파악하는 시간이 project 2보다 더 길었다. 구현해야 할 양도 많기도 많고… 그럼에도 불구하고 처음보다 핀토스 디버깅과 C에 익숙해졌음을 체감했고, 다이어그램을 어떻..

크래프톤정글 PintOS; Project 1, 2 Diagram

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 참고: 카이스트 핀토스 pdf, 카이스트 핀토스 강의, 핀토스 GitBook project 2부터 만들기 시작해서 사실상 project 1의 내용은 거의 담지 않음 도식화를 하지 않으면 안되겠다고 생각하게 된 계기 방대한 코드를 파악 및 이해하기 어려움 (+ 그에 따른 코치님의 방법론 조언) 마침 옵시디언에서 다이어그램 기능 업데이트 (타이밍 굿!) 코드를 구현하면서 필요한 디테일들이 각종 자료 여기저기에 산재되어 있어서, 이것들을 한 곳에 모아서 보고. 동시에 프로그램의 흐름을 알 수 있으면 좋겠다고 생각. 일종의 지도같이 사용할 수 있었다. 방대한 코드에서 길을 잃지 않게 도와 줌. 이것도..

크래프톤정글 9-10주차; WIL - PintOS Project 3 Virtual Memory

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 노란색 하이라이트는 블로그 주인의 생각 + 개인적으로 이해가 더 필요한 부분을 표시한 것입니다. 특별히 더 중요한 개념으로 표시한 것이 아닙니다. TIL/WIL 노트의 일부를 정리해서 적합한 카테고리의 노트 항목에 추가합니다. 2023-01-03, 2023-01-07 PintOS KAIST GitBook: Project3: Virtual Memory - Introduction 참고: https://casys-kaist.github.io/pintos-kaist/project3/introduction.html 우리의 지금 OS 멀티플 스레드 적절한 동기화 다양한 유저 프로그램을 동시에 load 하..

크래프톤정글 8주차; WIL - PintOS Project 2 User Program

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 노란색 하이라이트는 블로그 주인의 생각 + 개인적으로 이해가 더 필요한 부분을 표시한 것입니다. 특별히 더 중요한 개념으로 표시한 것이 아닙니다. TIL/WIL 노트의 일부를 정리해서 적합한 카테고리의 노트 항목에 추가합니다. 2022-12-26, 2022-12-27 C언어 - strtok_r() 함수 사용 참고: https://www.it-note.kr/86 왜? argument passing 구현에서 명령행 인자 parsing을 위해 사용한 함수. 어떻게? ☞ C언어 문법 & 개념 정리 노트에 추가 C언어 - memset 함수 사용법 참고: [C언어/C++] memset 함수 메모리 초기화..

백준 9663번 N-Queen 파이썬

2023-01-18, 2023-01-19 백준 9663번 N-Queen 파이썬 참고: https://chanhuiseok.github.io/posts/baek-1/ https://seongonion.tistory.com/103 https://www.acmicpc.net/problem/9663 무엇? N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. 왜? 정글 알고리즘 주차때 못 풀었거나 & 정답을 참고해서 풀었던 문제들 다시 풀기 어떻게? 내 코드 백트래킹 (dfs에 조건을 걸어 경우의 수를 제한하는 방법) # https://www.acmicpc.net/problem/9663 # N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격..