본문 바로가기

분류 전체보기

(291)
프로그래머스, 공원산책 프로그래머스, 공원산책 문제 https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분류 시뮬레이션 풀이 일단, 시작 위치(S)를 알아야 한다. 중요한 포인트는 산책을 할 수 있는지 여부와 산책 할 수 없을 경우 스킵한다는 점! 처음에 스킵한다는 걸 어떻게 할까 고민하다가 flag(True, False)사용 nr, nc로 도달하게 될 장소를 갈 수 있는지 확인! 만약, 주어진 횟수만큼 갈 수 있다면, flag를 True로 하고 현재 위치를 이동시켜줬..
2.1 삽입 정렬 2. 시작하기 삽입정렬 분할정복 + 병합 알고리즘 2.1 삽입정렬 정렬하고자 하는 숫자 = key n의 크기가 작을 경우 삽입정렬 > 병합정렬 루프 불변성 초기조건 : 루프가 첫 번째 반복을 시작하기 전에 루프 불변성이 참이어야 한다. 유지조건 : 루프의 반복이 시작되기 전에 루프 불변성이 참이었다면 다음 반복이 시작되기 전까지도 계속 참이어야 한다. 종료조건 : 루프가 종료될 때 불변식이 알고리즘의 타당성을 보이는데 도움이 될 유용한 특성을 가져야 한다. 수학 귀납적 과정과 유사 초기 조건: 불변식 유지 조건 : 불변식 만족 종료 조건 : 불변식 불만족 연습문제 2.1-1 2.1-2 for j = 2 to A.length key = A[j] i = j - 1 while i > 0 그리고 A[i] < k..
프로세스 API 프로세스 API 프로세스를 생성하고 제어하는 방법 📌 배운 것 UNIX 시스템 fork(), exec() 시스템 콜 : 프로세스 생성하기 위해 wait() 시스템 콜 : 프로세스가 자신이 생성한 프로세스가 종료되기를 기다리기 원할 때 사용 PID process identifier 프로세스 식별자 실행과 중단과 같은 특정 프로세스를 대상으로 작업해야하는 경우 프로세스를 지칭하기 위해 사용. 주요 시스템 콜 fork() 생성된 프로세스(자식 프로세스 : 0 반환)는 호출한 프로세스(부모 프로세스 : 자식 프로세스의 PID 반환)의 본사본 하지만, 자식 프로세스는 부모 프로세스와 완전히 동일하지는 않다. 자식 프로세스는 자신의 주소공간, 레지스터, PC 값을 가진다. wait() 부모 프로세스가 자식 프로세스..
프로그래머스, 정수를 나선형으로 배치하기 프로그래머스, 정수를 나선형으로 배치하기 https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제를 보자마자 백준 뱀 문제가 떠올랐다. 뱀 문제도 복습해야 겠다. 일단 방문표시를 해주시기 위해 0으로 배열을 초기화 해준다. 딱 방문하려고 봤을때 0이면 방문하면 되는 것! result = [[0 for _ in range(n)] for _ in range(n)] 그리고 북동남서 모든 방향으로 갈수 있도록 방향과 백터를 표시해준다. 행열에서 (..
백준 2447번 별찍기 - 10 백준 2447번 별찍기 - 10 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 풀이 행 index 를 3으로 나눴을 때 나머지가 1이면서 열 index 를 3으로 나눴을 때 나머지가 1인 경우에만 빈칸으로 출력하면 위와 같이 찍힐 것이다. 하지만, 규칙에서는 행 index 3,4,5 와 열 index 3,4,5 일 때 빈칸이어야한다. 3분할로 자꾸 쪼개지는 느낌의 규칙! index를 3으로 나눠봤다. 그랬더니 행 i..
1.2 기술로서의 알고리즘 1.2 기술로서의 알고리즘 시간과 메모리는 한정적인 자원이므로 알고리즘을 공부해 시간과 공간의 자원을 효율적으로 사용해야 함. 📌 알고리즘의 역할 고급 컴퓨터 아키텍처와 제작 기술 사용하기 쉽고 직관적인 그래픽 사용자 인터페이스(GUI) 객체 지향 시스템 통합 웹 기술 유선 및 무선 모두에 대한 빠른 네트워킹 기계 학습 모바일 장치 📌 하드웨어 = 알고리즘 설계 응용 프로그램 = 알고리즘 설계 즉, 알고리즘 작업을 수행하는 방법이 곧 기계 학습이라고 생각 할 수 있음. 컴퓨터가 계산을 수행하고, 정보를 검색하고, 데이터를 정렬하고, 오류 없이 수많은 다른 작업을 수행하도록 도와주는 게 바로 알고리즘이다. 1.2-1 흠..네이버 길찾기 어플을 사용할때, 걸리는 시간 거리 데이터를 이용해 알고리즘 기능으로 ..
가상화, 프로세스의 개념 가상화, 프로세스의 개념 프로세스 = cpu 가상화 📌 배운 것 프로세스 란? 실행 중인 프로그램 프로그램이란? 디스크 상에 존재하며 실행을 위한 명령어와 정적 데이터의 묶음 우리는 컴퓨터를 사용할 때 여러 개의 프로그램을 동시에 실행시킨다. 예를 들어, 웹 브라우저, 슬랙, 게임, 음악 플레이어 등을 동시에 실행할 수 있다. 그렇다면, 적은 개수의 CPU 밖에 없는데, 어떻게 운영체제는 무한대에 가까운 CPU가 있는 듯한 환상을 만들어 낼까? 바로 OS는 CPU를 가상화 하여 CPU가 여러 개 존재한다는 환상을 제공한다. 하나의 프로세스를 실행하고, 얼마 후 중단시키고 다른 프로세스를 실행하는 작업(문맥 교환)을 반복해 가상 CPU가 존재하는 듯한 환상을 준다.이를 시분할 기법(개체들을 공유, 공간 분..
1.1 알고리즘 1.1 알고리즘 다량의 데이터 : 정보를 많이 얻을 수록 시간, 장비, 자금, 인적자원 등이 소요된다. 알고리즘 기술은 이러한 자원을 효율적으로 절약해준다. 빠른 서비스 제공 : 테이터가 전송되는 경로를 찾거나, 특정 정보가 있는 페이지를 빨리 검색하는 문제 등을 해결해준다. 보안 : 개인정보 공개키 암호화, 전자 서명 등의 핵심 기술은 수치 알로리즘과 정수론 등을 기반으로 만들어 졌다. 기업 기대 수익 극대화 : 석유회사 어디에 유정을 뜷어햐 하는지 결정, 정치 입후보자의 승리 가능성 높은 캠페인 예측, 최소 비용이 드는 승무원 스케줄 관리 및 배치, 추가 장비 배치할 위치 결정. 현실세계에서 알고리즘으로 최상의 해를 구하는건 불가능에 가깝다. 하지만 최적의 해를 찾는데는 효율적이라 할 수 있다. 📌 ..
운영체제 개요 운영체제 개요 📌 배운 것 프로그램이 하는 일 반입(fetch) - 해석(decode) - 실행(execute) OS(Operating System) = 소프트웨어 = 가상머신(Virtual Machine) = 자원 관리자(Resource Manager) 프로그램을 쉽게 실행하기 위해(easy to use), 시스템을 사용하기 편리하기 만들기 때문에 추상화를 해줌! 추상화를 통해 큰 프로그램을 이해하기 쉬운 작은 부분들로 나누어 구현 가능. 프로그램 간의 메모리 공유를 가능케 하기 위해 프로세서, 메모리 또는 디스크와 같은 물리적 자원을 사용하기 편리한 가상 형태의 자원으로 가상화(프로그램 실행, 메모리 할당, 파일 접근) 많은 프로그램이 CPU를 공유해 동시에 실행될 수 있도록 함. 프로그램들이 디스크..
백준 2869 달팽이는 올라가고 싶다 백준 2869 달팽이는 올라가고 싶다 문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 풀이 처음 이 문제의 식을 이해하는데 많이 시간이 소요됐다. 이 문제의 핵심은 낮과 밤! 하루를 넘어가는 기준을 잘 생각해봐야 한다. 1일 최대 갈 수 있는 거리 : 낮 이동 거리 2일 최대 갈 수 있는 거리 : 낮 이동거리 - 밤 이동거리 + 낮 이동거리 3일 최대 갈 수 있는 거리 : 낮 이동거리 - 밤 이동거리 + 낮 이동거리 - 밤 이동거리 + 낮 이동거리 이제 조금 규칙이 보이는가? 이때, (V-B)/(..