전체 글 100

[크래프톤 정글] 0 주차 회고

크래프톤 정글 에 들어오기 전 까지작년 11월 우테코 에 떨어진 이후 , 2024년에 는 어떻게 하지 라는 생각을 가지고 그냥 저냥 살던중4월즈음 지인을 통해서 크래프톤 정글 을 알게 되었다 . 사실 250만원 이라는 참여 비용과 , 5개월 합숙 이라는 조건 때문에 고민이 많이 들었다. 그러나 그 당시에는 뭐라도 해야한다고 생각했기에 지원서를 일단 넣고 일본 에서 귀국한 다음날 부터 입과 시험 준비 를 했다. 입과 시험은 처음 써보는 flask, html, css 만을 가지고 구현 해야해서 프론트 부분에서 조금 애를 먹었지만 주어진 시간 1시간을 남겨두고 무사히 마무리 했다.그리고 2주일 뒤쯤 면접을 보았던거 같다. 면접에서는 비교적 쉬운 개인 적인 질문 들이 나왔다.간단 자기소개원래 하드웨어 를 했었는..

크래프톤 정글 2024.09.19

[크래프톤 정글] 백준 9663번 N_queen 문제

N-Queens 문제 개요N-Queens 문제는 N x N 크기의 체스판에 N개의 퀸을 서로 공격할 수 없도록 배치하는 문제다. 퀸은 체스에서 가로, 세로, 대각선으로 공격할 수 있기 때문에, 서로 공격하지 않도록 배치하는 것이 핵심이다. 가능한 모든 배치 방법을 찾고, 그 개수를 계산하는 것이 목표다.백트래킹 알고리즘 개요백트래킹은 가능한 모든 경우를 탐색하면서, 조건에 맞지 않는 경우를 미리 포기하고 돌아가서 다른 경로를 시도하는 탐색 방법이다. 이 방식은 불필요한 탐색을 줄여주기 때문에 효율적이다.백트래킹을 사용한 N-Queens 문제 해결 방법처음 행(row = 0)부터 시작:탐색은 첫 번째 행(row = 0)부터 시작하여, 가능한 모든 열(col)에 퀸을 배치하는 시도를 한다.예를 들어, (0,..

Algorithm 2024.09.17

[크래프톤 정글] 컴퓨터 시스템 13p - 메모리 계층 구조

메모리 계층 구조의 정의메모리 계층 구조는 컴퓨터 시스템에서 메모리의 성능, 용량, 비용 간의 균형을 맞추기 위해 계층적으로 배열된 메모리 장치들의 구조를 의미한다. 일반적으로, 계층이 높을수록 접근 속도는 빠르지만 용량은 작고 비용은 비싸다. 반대로, 계층이 낮을수록 접근 속도는 느리지만 용량은 크고 비용은 저렴하다.메모리 계층 구조의 단계별 구성레지스터(Registers)위치: CPU 내부속도: 매우 빠름 (CPU 클록 속도와 동일)용량: 매우 작음 (몇십 바이트에서 수백 바이트)특징:CPU가 가장 빠르게 접근할 수 있는 메모리.연산을 위해 임시 데이터를 저장하는 용도로 사용된다.레지스터는 일반적으로 산술 연산, 주소 계산, 명령어 실행 등 CPU의 기본 연산에서 사용된다.캐시 메모리(Cache Me..

cs 2024.09.15

[크래프톤 정글] 컴퓨터 시스템 ~ 1장

이 포스트의 내용은 '컴퓨터 시스템 A Programmer's Perspective' 도서의 내용을 기반으로 합니다.1장: 컴퓨터 시스템 개요1.1 컴퓨터 시스템의 기본 개념컴퓨터 시스템은 하드웨어와 소프트웨어로 구성된다. 이 둘은 서로 밀접하게 연결되어 있으며, 프로그램이 하드웨어 상에서 어떻게 동작하는지를 이해하는 것이 중요하다.하드웨어 구성 요소: 프로세서(CPU), 메모리, I/O 장치 등이 있다. 프로세서는 프로그램의 명령어를 실행하고, 메모리는 데이터를 저장하며, I/O 장치는 외부 세계와의 인터페이스를 제공한다.1.2 프로그램의 실행프로그램이 실행되는 과정:소스 코드 작성: 프로그래머가 고급 언어(C, Java 등)로 작성한 소스 코드.컴파일: 컴파일러가 소스 코드를 어셈블리 언어로 변환하고..

cs 2024.09.15

[크래프톤 정글] 백준 1914번 하노이의 탑

오늘은 1914번 하노이의 탑 문제의 풀이에 대해 정리해 보려 한다. 문제를 보자하노이의 탑 문제 접근법 정리하노이의 탑 문제는 주어진 규칙에 따라 원반들을 다른 기둥으로 옮기는 문제다. 이 문제는 주로 재귀적 접근법을 사용하여 해결할 수 있다. 목표는 최소한의 이동 횟수로 모든 원반을 목적지 기둥으로 옮기는 것이다.1. 문제 설명하노이의 탑 문제는 세 개의 기둥(A, B, C)과 크기가 다른 ( N )개의 원반이 있는 상황을 가정한다. 모든 원반은 처음에 첫 번째 기둥(A)에 쌓여 있고, 크기가 큰 원반이 아래에 위치하며 크기가 작은 원반이 위에 위치한다. 목표는 다음 두 가지 규칙을 준수하며 첫 번째 기둥(A)에서 세 번째 기둥(C)로 모든 원반을 옮기는 것이다.한 번에 한 개의 원반만 옮길 수 있다..

Algorithm 2024.09.15

[크래프톤 정글 ] 백준 1182 번

정글에 입소한지 0주차 가지나고 1주차에 접어들어 알고리즘 시험을 보게 되었다 .시간은 1시간 30분 상,중,하 하나씩 총 3문제 가 출제 되었는데 , 결과는 처참했다. 하 문제 하나 겨우 풀었지만 그마저도 시간초과 ...ㅋㅋㅋ;;;;그 비참한 결과를 다음주에는 반복하지 않고자 1주차 문제를 하나씩 풀어보려고 한다.접근 방식이 문제는 탐색을 사용하여 푸는 문제이기 때문에 접근 할수 있는 방법은 다양하다 대표적으로 다음과 같은 방법들을 이용하여 접근해 볼수 있을거같다1. 재귀와 백트래킹 (Brute-force 방법)이 방법은 모든 가능한 부분수열을 재귀적으로 탐색하여 부분수열의 합이 ( S )와 일치하는 경우의 수를 세는 방식이다.설명: 모든 원소를 포함하거나 포함하지 않는 두 가지 선택을 재귀적으로 진행..

Algorithm 2024.09.13

[크래프톤 정글] 연결 리스트

연결 리스트(Linked List)는 데이터를 노드(Node)라는 단위로 저장하며, 각 노드는 다음 노드를 가리키는 포인터를 포함하는 선형 자료 구조다. 연결 리스트는 데이터를 물리적으로 연속된 공간에 저장하지 않고, 메모리의 동적 할당을 통해 데이터 요소들이 필요할 때마다 새로운 공간을 할당받아 저장한다. 이 때문에 데이터 요소의 추가와 삭제가 비교적 자유로운 특징이 있다.파이썬의 참조와 C 언어의 포인터의 차이파이썬의 참조(Reference): 파이썬에서는 변수들이 실제 객체에 대한 참조를 저장한다. 이는 메모리 주소를 직접적으로 다루지 않기 때문에 메모리 관리가 자동으로 이루어지며, 개발자는 객체의 참조만을 다룬다. 예를 들어, 리스트의 노드가 다른 노드를 가리킬 때 그 노드는 단순히 다른 객체를 ..

Algorithm 2024.09.11

[크래프톤 정글] 정렬 알고리즘 1탄

정렬 알고리즘 의 종류1 . 버블 정렬버블 정렬(Bubble Sort)은 매우 간단한 정렬 알고리즘 중 하나로, 인접한 두 요소를 비교하여 필요에 따라 자리를 교환하면서 정렬하는 방식이다. 최악의 경우 시간 복잡도는 \(O(n^2)\)이며, 이는 작은 데이터셋에서는 적절할 수 있지만, 큰 데이터셋에서는 비효율적이다.버블 정렬 알고리즘 동작 원리리스트의 첫 번째 요소부터 시작하여 인접한 두 요소를 비교한다.두 요소가 올바른 순서(오름차순 또는 내림차순)에 있지 않으면 서로 위치를 교환한다.리스트의 끝까지 이 과정을 반복한다.첫 번째 반복이 끝나면 가장 큰 값이 리스트의 마지막 위치에 있게 된다.이 과정을 남은 요소들에 대해서 반복하여 모든 요소가 정렬될 때까지 계속한다.버블 정렬의 구현 (Python 코드..

Algorithm 2024.09.09

[크래프톤 정글 week01] 해시 테이블

해시 테이블의 정의**해시 테이블(Hash Table)**은 해시 함수를 사용하여 데이터(키-값 쌍)를 특정 인덱스에 매핑(mapping)함으로써, 평균적으로 O(1) 시간 복잡도로 데이터의 **삽입(Insertion), 삭제(Deletion), 검색(Search)**을 지원하는 효율적인 자료 구조다.해시 테이블은 주어진 키를 빠르게 검색할 수 있도록 해시 값을 사용하여, 데이터를 저장할 위치를 계산하고 해당 위치에 데이터를 저장한다.O(1) 복잡도(상수 시간 복잡도)는 알고리즘의 실행 시간이 입력 크기와 상관없이 일정한 경우를 나타낸다. 해시 테이블의 주요 구성 요소해시 함수(Hash Function):입력 값(키)을 고정된 크기의 해시 값으로 변환하는 함수다. 이 해시 값은 해시 테이블에서 데이터가 ..

Algorithm 2024.09.09

[크래프톤 정글 week01] 재귀 함수

재귀 함수란재귀 함수는 정의 단계 에서 자신을 재참조 하는 함수를 뜻 한다.문제를 해결하기 위해 특정 분기 까지 계속 해서 자기 자신을 호출 한다. 이는 주로 반복문 구현 에 사용하게 된다.흔히들 사용하게 되는 for,while,reduce등의 반복문등이 존재하는데 , 이러한 반복 문으로 구현이 가능한 로직은 재귀로도 구현이 가능하다.재귀 함수 의 용도재귀 함수는 큰 목표 작업을 여러 개의 작은 작업으로 쪼개서 해결할 수 있는 경우에 특히 유용하다. 이는 문제를 반복적으로 동일한 유형의 더 작은 문제로 나눌 수 있을 때 재귀 함수가 효과적이라는 의미다. 구체적으로, 재귀 함수는 다음과 같은 상황에서 유용하게 사용될 수 있다:큰 문제를 더 작은 동일한 문제로 분할 가능할 때문제를 풀기 위해 동일한 종류의 ..

Algorithm 2024.09.07