분류 전체보기
-
Probability Sampling(확률 표본 추출) Simple Random Sampling(무작위 추출법) 모집단 전체에 일련 번호(실제 혹은 개념적)를 부여하고, 랜덤하게 추출하는 방식 장점 추출 확률이 동일하기 때문에, 표본의 대표성이 크고, 오차 개입 여부가 적음 모집단에 대한 사전 지식 불필요 단점 대규모 표본일 때 효과적임 모집단에 대한 사전 지식을 활용할 수 없고, 표본 프레임(모집단 목록)을 파악하기 어려움 Stratified Sampling(층화 추출법) 모집단을 서로 겹치지 않는 여러 개의 ‘층’으로 쪼갠 뒤, 각 ‘층’에서 무작위로 추출하는 방식 ‘층’ 마다의 개수를 고려해 추출한다면, 비례 층화 추출 장점 집단을 ‘층’으로 관리해 빼놓지 않고 표본에 포함 시킬 수 있음 대표성이 ..
Sampling(표본 추출) 방식 별 특징과 추출법 결정 시 고려 사항Probability Sampling(확률 표본 추출) Simple Random Sampling(무작위 추출법) 모집단 전체에 일련 번호(실제 혹은 개념적)를 부여하고, 랜덤하게 추출하는 방식 장점 추출 확률이 동일하기 때문에, 표본의 대표성이 크고, 오차 개입 여부가 적음 모집단에 대한 사전 지식 불필요 단점 대규모 표본일 때 효과적임 모집단에 대한 사전 지식을 활용할 수 없고, 표본 프레임(모집단 목록)을 파악하기 어려움 Stratified Sampling(층화 추출법) 모집단을 서로 겹치지 않는 여러 개의 ‘층’으로 쪼갠 뒤, 각 ‘층’에서 무작위로 추출하는 방식 ‘층’ 마다의 개수를 고려해 추출한다면, 비례 층화 추출 장점 집단을 ‘층’으로 관리해 빼놓지 않고 표본에 포함 시킬 수 있음 대표성이 ..
2023.04.11 -
운영체제의 자원 관리 운영체제의 주요 기능은 컴퓨터 자원을 효과적으로 관리하는 것이다. 컴퓨터의 핵심 하드웨어 자원인 CPU와 메모리는 CPU Scheduling(스케줄링)과 Memory Management(메모리 관리)을 통해 관리된다. 또한 주변 및 입출력 장치의 요청을 CPU가 효과적으로 처리하기 위해 Interrupt(인터럽트)를 도입했다. 1. CPU Scheduling(스케줄링) 1개의 CPU에서 다양한 프로세스를 수행하기 위해, 자원을 관리하는 방법 가장 효율적이면서, 특정 프로세스가 불이익을 받지 않도록 설정하는 것이 핵심 현재 CPU 자원을 뺏을 수 있는 스케줄링이면 Preemptive(선점형), 없으면 Non-preemptive(비선점형)이라고 함 FCFS(First Come First..
[OS] 운영체제의 자원 관리 기능 알아보기운영체제의 자원 관리 운영체제의 주요 기능은 컴퓨터 자원을 효과적으로 관리하는 것이다. 컴퓨터의 핵심 하드웨어 자원인 CPU와 메모리는 CPU Scheduling(스케줄링)과 Memory Management(메모리 관리)을 통해 관리된다. 또한 주변 및 입출력 장치의 요청을 CPU가 효과적으로 처리하기 위해 Interrupt(인터럽트)를 도입했다. 1. CPU Scheduling(스케줄링) 1개의 CPU에서 다양한 프로세스를 수행하기 위해, 자원을 관리하는 방법 가장 효율적이면서, 특정 프로세스가 불이익을 받지 않도록 설정하는 것이 핵심 현재 CPU 자원을 뺏을 수 있는 스케줄링이면 Preemptive(선점형), 없으면 Non-preemptive(비선점형)이라고 함 FCFS(First Come First..
2023.04.08 -
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 들은 멜로디와 실제 곡을 비교하기 위해선, 재생 시간 만큼 곡의 멜로디를 늘려줘야 한다. 곡을 늘릴 때 # 이 있으면 개수를 세기 어려우니, 먼저 # 이 붙은 음을 변경해준다. 나머지 부분은 문제의 조건에 맞춰서 구현하면 된다. 재생 시간이 동일할 경우, 먼저 입력된 음악을 반환하라고 돼 있는데, 입력 시간을 기준으로 정렬하지 않아도 똑같이 정답으로 나온다. 이미 입력 시간 기준으로 입력된 거 같다. # 끝부분-처음 부분 연결돼 헷갈릴 수 있음 / 중간 멜로디만 겹칠 수 있음 # 재생 시..
[Python] 프로그래머스 [3차] 방금그곡 풀이문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 들은 멜로디와 실제 곡을 비교하기 위해선, 재생 시간 만큼 곡의 멜로디를 늘려줘야 한다. 곡을 늘릴 때 # 이 있으면 개수를 세기 어려우니, 먼저 # 이 붙은 음을 변경해준다. 나머지 부분은 문제의 조건에 맞춰서 구현하면 된다. 재생 시간이 동일할 경우, 먼저 입력된 음악을 반환하라고 돼 있는데, 입력 시간을 기준으로 정렬하지 않아도 똑같이 정답으로 나온다. 이미 입력 시간 기준으로 입력된 거 같다. # 끝부분-처음 부분 연결돼 헷갈릴 수 있음 / 중간 멜로디만 겹칠 수 있음 # 재생 시..
2023.04.06 -
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 기존 컨베이어 벨트와 보조 컨베이어 벨트를 각각 Queue와 Stack으로 만든 뒤, 주어진 조건에 만족하도록 구현했다. # 1 ~ n 까지의 택배를 재 배열 # 기존 컨베이어 : queue -> 작은 수부터 빼낼 수 있음 # 보조 컨베이어 : Stack -> 큰 수부터 빼낼 수 있음 # 몇 개의 상자를 실을 수 있는지 # order의 상자가 나올 때 까지 pop from collections import deque def solution(order): order = deque(order..
[Python] 프로그래머스 택배상자 풀이문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 기존 컨베이어 벨트와 보조 컨베이어 벨트를 각각 Queue와 Stack으로 만든 뒤, 주어진 조건에 만족하도록 구현했다. # 1 ~ n 까지의 택배를 재 배열 # 기존 컨베이어 : queue -> 작은 수부터 빼낼 수 있음 # 보조 컨베이어 : Stack -> 큰 수부터 빼낼 수 있음 # 몇 개의 상자를 실을 수 있는지 # order의 상자가 나올 때 까지 pop from collections import deque def solution(order): order = deque(order..
2023.04.05 -
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 Orders 배열의 원소 크기가 작고, 조합을 확인해야 하는 Course의 크기 또한 크지 않다. 따라서 모든 세트 조합을 구하더라도 시간 초과가 발생하진 않는다. 세트 조합을 구하는 과정에서 주의할 점은 알파벳 순서가 다르더라도 동일한 세트로 처리해야 한다는 점이다. 이후엔 문제에서 주어진 조건에 맞게 필터링하면 된다. # 각 손님들이 주문할 때, 가장 많이 함께 주문한 단품 메뉴를 코스 요리 메뉴로 구성 # 코스 요리 : 최소 2 가지 단품 + 최소 2 명의 손님이 주문했던 제품 만 ..
[Python] 프로그래머스 메뉴 리뉴얼 풀이문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 Orders 배열의 원소 크기가 작고, 조합을 확인해야 하는 Course의 크기 또한 크지 않다. 따라서 모든 세트 조합을 구하더라도 시간 초과가 발생하진 않는다. 세트 조합을 구하는 과정에서 주의할 점은 알파벳 순서가 다르더라도 동일한 세트로 처리해야 한다는 점이다. 이후엔 문제에서 주어진 조건에 맞게 필터링하면 된다. # 각 손님들이 주문할 때, 가장 많이 함께 주문한 단품 메뉴를 코스 요리 메뉴로 구성 # 코스 요리 : 최소 2 가지 단품 + 최소 2 명의 손님이 주문했던 제품 만 ..
2023.03.31 -
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 가짓수를 동일하게 케이크를 분리해야 한다. 앞 케이크 분리 시, 뒷 케이크의 일부 성분이 없어져 가짓수가 바뀔 수 있다는 것을 주의해야 한다. 이 생각을 안하고 이분 탐색으로 접근해서 풀었고, 결국 스스로 푸는데는 실패했다. 아래는 다른 사람의 코드를 보고 이해한 내용이다. 각 케이크 가짓수를 따로 저장해서 관리 우선 각 케이크의 idx 별 가짓수를 pt1_cnt, pt2_cnt에 저장한다. 모두 저장이 끝나면 pt1_cnt[i]와 pt2_cnt[i + 1] 이 동일한 지 확인하고, 그 ..
[Python] 프로그래머스 롤케이크 자르기 풀이문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 가짓수를 동일하게 케이크를 분리해야 한다. 앞 케이크 분리 시, 뒷 케이크의 일부 성분이 없어져 가짓수가 바뀔 수 있다는 것을 주의해야 한다. 이 생각을 안하고 이분 탐색으로 접근해서 풀었고, 결국 스스로 푸는데는 실패했다. 아래는 다른 사람의 코드를 보고 이해한 내용이다. 각 케이크 가짓수를 따로 저장해서 관리 우선 각 케이크의 idx 별 가짓수를 pt1_cnt, pt2_cnt에 저장한다. 모두 저장이 끝나면 pt1_cnt[i]와 pt2_cnt[i + 1] 이 동일한 지 확인하고, 그 ..
2023.03.30 -
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 x에서 y 까지의 최소 이동 횟수를 구하기 위해서 BFS를 활용했다. 이때 x와 y가 같은 경우엔, 이동 횟수가 0으로도 도달 가능하기에 미리 예외 처리를 해줬다. # 최소 연산 횟수? # y 까지의 위치를 저장하는 배열 생성 후 BFS from collections import deque def bfs(map_info: list, start: int, end: int, n: int) -> int: queue = deque() queue.append(start) # BFS 시작 while..
[Python] 프로그래머스 숫자 변환하기 풀이문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 x에서 y 까지의 최소 이동 횟수를 구하기 위해서 BFS를 활용했다. 이때 x와 y가 같은 경우엔, 이동 횟수가 0으로도 도달 가능하기에 미리 예외 처리를 해줬다. # 최소 연산 횟수? # y 까지의 위치를 저장하는 배열 생성 후 BFS from collections import deque def bfs(map_info: list, start: int, end: int, n: int) -> int: queue = deque() queue.append(start) # BFS 시작 while..
2023.03.24 -
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 재귀를 활용한 풀이 : 코드 작성 실패 n 이 3 보다 클 경우, 전체 삼각형은 외부 삼각형, 내부 삼각형으로 분리할 수 있다는 점을 주목해 풀이를 시도했다. 코드 작성엔 실패했고, 다른 사람이 작성한 아래 코드를 보고 이해한 뒤 주석을 작성했다. arr = [] def draw(x, y, cnt, num): if cnt < 1: return number = num # 삼각형의 좌측 대각선 for i in range(cnt): arr[x + i][y] = number number += 1..
[Python] 프로그래머스 삼각 달팽이 풀이문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 재귀를 활용한 풀이 : 코드 작성 실패 n 이 3 보다 클 경우, 전체 삼각형은 외부 삼각형, 내부 삼각형으로 분리할 수 있다는 점을 주목해 풀이를 시도했다. 코드 작성엔 실패했고, 다른 사람이 작성한 아래 코드를 보고 이해한 뒤 주석을 작성했다. arr = [] def draw(x, y, cnt, num): if cnt < 1: return number = num # 삼각형의 좌측 대각선 for i in range(cnt): arr[x + i][y] = number number += 1..
2023.03.23 -
문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 완전 탐색으로 접근할 경우 $O(N^2)$ 이고, numbers의 길이는 최대 100만이기 때문에 시간 초과가 발생한다. 뒷 큰수는 앞에서 부터 값을 보관해 뒀다가, 더 큰 값이 나오면 제거하고, answer 정보를 업데이트하는 방식으로도 얻을 수 있다. 이 경우 스택에 값 numbers의 idx를 저장해두고, numbers의 숫자가 가장 최근에 입력된 값과 유사한 지 비교하면 된다. # 자신보다 뒤 + 크면서 가장 가까이 있는 수 : 뒷 큰수 # 뒷 큰수가 없으면 -1 # 완전 탐색 불..
[Python] 프로그래머스 뒤에 있는 큰 수 찾기 풀이문제 확인 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 완전 탐색으로 접근할 경우 $O(N^2)$ 이고, numbers의 길이는 최대 100만이기 때문에 시간 초과가 발생한다. 뒷 큰수는 앞에서 부터 값을 보관해 뒀다가, 더 큰 값이 나오면 제거하고, answer 정보를 업데이트하는 방식으로도 얻을 수 있다. 이 경우 스택에 값 numbers의 idx를 저장해두고, numbers의 숫자가 가장 최근에 입력된 값과 유사한 지 비교하면 된다. # 자신보다 뒤 + 크면서 가장 가까이 있는 수 : 뒷 큰수 # 뒷 큰수가 없으면 -1 # 완전 탐색 불..
2023.03.22 -
Class 데이터로 어떤 문제를 해결하기 위해서, OOP 원칙에 따라 코드로 구현한 것이다. 다시 말하면 어떤 집단에 속하는 Attributes(속성)과 Methods(행위)를 코드로 구현해, 변수와 메소드로 정의한 것이다. 이러한 Class는 Object(객체)의 설계도 역할을 하기 때문에, 실제 메모리 상에 올라가진 않는다. 실제 메모리에 할당되는 것은 Class가 아닌 객체이고, 객체 각각은 instance라고 부른다. Object(Instance) Class에서 정의한 것(설계도)를 토대로 실제 메모리 상에 할당된 것(실제 사물)이다. 프로그램에서의 데이터와 행위를 묶어 만들어진, 실체이다. Class로 만들어진 여러 instance는 각각 독립적이다. Python의 self 과 cls ? sel..
[OOP] Class와 Instance(Object) 알아보기 Feat. self, clsClass 데이터로 어떤 문제를 해결하기 위해서, OOP 원칙에 따라 코드로 구현한 것이다. 다시 말하면 어떤 집단에 속하는 Attributes(속성)과 Methods(행위)를 코드로 구현해, 변수와 메소드로 정의한 것이다. 이러한 Class는 Object(객체)의 설계도 역할을 하기 때문에, 실제 메모리 상에 올라가진 않는다. 실제 메모리에 할당되는 것은 Class가 아닌 객체이고, 객체 각각은 instance라고 부른다. Object(Instance) Class에서 정의한 것(설계도)를 토대로 실제 메모리 상에 할당된 것(실제 사물)이다. 프로그램에서의 데이터와 행위를 묶어 만들어진, 실체이다. Class로 만들어진 여러 instance는 각각 독립적이다. Python의 self 과 cls ? sel..
2023.03.21 -
OOP란? 필요한 데이터를 추상화하여 속성(Attributes)와 행위(methods)를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호 작용을 통해 로직을 구성하는 프로그래밍 방법이다. 데이터를 중심으로 필요한 기능을 함수로 구현하는 방식의 절차 지향 프로그래밍과 달리, OOP에선 데이터와 함수들을 묶고 이를 객체로 관리한다. 객체라고 하면 뭔가 말이 어렵고 한데, 그냥 우리가 일반적으로 사용하는 언어 구조와 비슷하다고 생각하면 이해하기 쉽다. 위 그림을 예시로 들면 우선 데이터는 '돈', '잔돈', '제품'이다. 앞서 절차 지향에선 데이터(돈, 잔돈, 제품)를 행위와 별도로 생각한다고 했다. 그래서 절차 지향에선 데이터에 대한 모든 행위를 '~돈을 ~', '~잔돈을~', '~제품을~'의 식으로 표..
[OOP] OOP(객체 지향 프로그래밍)의 개념과 특징 알아보기OOP란? 필요한 데이터를 추상화하여 속성(Attributes)와 행위(methods)를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호 작용을 통해 로직을 구성하는 프로그래밍 방법이다. 데이터를 중심으로 필요한 기능을 함수로 구현하는 방식의 절차 지향 프로그래밍과 달리, OOP에선 데이터와 함수들을 묶고 이를 객체로 관리한다. 객체라고 하면 뭔가 말이 어렵고 한데, 그냥 우리가 일반적으로 사용하는 언어 구조와 비슷하다고 생각하면 이해하기 쉽다. 위 그림을 예시로 들면 우선 데이터는 '돈', '잔돈', '제품'이다. 앞서 절차 지향에선 데이터(돈, 잔돈, 제품)를 행위와 별도로 생각한다고 했다. 그래서 절차 지향에선 데이터에 대한 모든 행위를 '~돈을 ~', '~잔돈을~', '~제품을~'의 식으로 표..
2023.03.16 -
Local git config --local로 접근 가능 해당 레포에만 적용 됨 설정 파일의 경로: 레포/.git/config Global git config --global로 접근 가능 현재 사용자에만 적용 됨 설정 파일의 경로: 유저/.git/config System git config --system으로 접근 가능 현재 PC의 모든 사용자와, 레포에 적용 됨 설정 파일의 경로 : 프로그램/git/config 주의! 모든 것은 현재 사용 중인 로컬 PC의 기준이고, Github 서버에 업로드 된 원격 저장소 origin과는 무관함 참고 Configure git for Azure and GitHUB and BitBucket on one system i am working on multiple proje..
[Git] Configuration의 Scope 확인하기Local git config --local로 접근 가능 해당 레포에만 적용 됨 설정 파일의 경로: 레포/.git/config Global git config --global로 접근 가능 현재 사용자에만 적용 됨 설정 파일의 경로: 유저/.git/config System git config --system으로 접근 가능 현재 PC의 모든 사용자와, 레포에 적용 됨 설정 파일의 경로 : 프로그램/git/config 주의! 모든 것은 현재 사용 중인 로컬 PC의 기준이고, Github 서버에 업로드 된 원격 저장소 origin과는 무관함 참고 Configure git for Azure and GitHUB and BitBucket on one system i am working on multiple proje..
2023.03.16