전체 글(210)
-
[OS] Operating System - Thread & Concurrnecy
Thread 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스 내에서 실제로 작업을 수행하는 주체이다 구성 ThreadID 스레드 고유 식별자 운영체제는 이 ID를 사용하여 각 스레드를 구별한다 Program Counter (PC) 스레드가 현재 실행 중인 코드의 주소를 가리키는 역할 스레드가 다음에 어떤 명령을 실행할지 결정하는 데 사용 register set 스레드의 현재 작업에 필요한 데이터와 명령을 저장하는 레지스터들의 집합 스레드의 현재 상태를 나타내며, 스레드 전환 시 저장 및 복원 stack 스레드의 함수 호출, 지역 변수, 반환 주소 등을 저장하는 메모리 영역 각 스레드는 독립적인 스택을 가지며, 이는 스레드 간 데이터 충돌을 방지하는 역할 특징 프로세스보다 생성과 관리가 더 경량화되어 ..
2024.01.04 -
[Python] 프로그래머스 lv2 - 타겟 넘버
[Python] 프로그래머스 lv2 - 타겟 넘버 코딩테스트 연습 - 타겟 넘버 | 프로그래머스 스쿨 (programmers.co.kr) 문제 설명 주어진 숫자 리스트의 내부 원소를 각각의 +-를 진행하여 계산 이때 최종적으로 계산된 결괏값이 target과 같은 경우를 종합하여 최종 경우의 수를 출력 DFS/BFS 카테고리 재귀로 풀이 total 값에 각각의 idx를 더하기, 빼기를 진행하여 total 값 변경을 진행 풀이 코드 answer=0 def recur(numbers, target, idx,total): global answer if idx == len(numbers): if total == target: answer+=1 return recur(numbers, target, idx+1, tot..
2024.01.03 -
[Python] 프로그래머스 lv2 - 소수 찾기
[Python] 프로그래머스 lv2 - 소수 찾기 코딩테스트 연습 - 소수 찾기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어진 숫자는 문자열로 주어진다 문자열로 주어진 숫자를 하나씩 나눠서 리스트로 변경한다 주어진 숫자를 한자리 숫자로 변경한 뒤 순열을 사용해서 만들 수 있는 숫자 문자열을 만든다 해당 문자열을 만들고 set의 성질을 사용해서 중복 값 제거 만들어진 문자열의 경우 [ [" 0 " , " 1 " , " 1 " ] ]의 형태로 존재하기에 join 메서드를 통해 리스트의..
2024.01.03 -
[Python] 프로그래머스 lv2 - 두 큐 합 같게 만들기
[Python] 프로그래머스 lv2 - 두 큐 합 같게 만들기 코딩테스트 연습 - 두 큐 합 같게 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 여기서 2번의 과정을 구현해야겠다고 생각을 했다. 두 큐의 합을 구하면서 비교 비교 후 합의 값이 큰 큐에서 pop(0)하여 다른 큐에 append 해주는 방식을 채택 해당 과정당 cnt의 증가로 과정을 체크 반환 값의 경우 큐의 합들이 동일하면 cnt 반환, 값이 틀리면 -1 반환 처음 1번의 과정을 진행하기 전 두 개의 큐의 합이 홀수..
2024.01.02 -
[Python] 프로그래머스 lv2 - 숫자 변환하기
[Python] 프로그래머스 lv2 - 숫자 변환하기 코딩테스트 연습 - 숫자 변환하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어진 숫자를 기준으로 x가 y가 되기까지의 최소 연산 횟수를 구하는 문제이다. 하나의 방법으로는 제한사항, 시간초과, 런타임 에러등의 두 가지의 방법을 생각했었다. 재귀 - 런타임 에러 발생 문제에서 요구하는 계산을 재귀로 호출, 재귀에서 호출하며 들어오는 cnt를 list에 저장 저장된 list의 최솟값을 answer로 반환 만약에 x==y가 성립되지 ..
2023.12.29 -
[OS] Operating System 01 - Introduction 02
메모리 계층 구조 컴퓨터 시스템에서 데이터 저장과 접근을 효율적으로 관리하기 위한 구조이다. 해당 구조 내부에서는 다양한 유형의 메모리를 보여준다. 여러 유형의 메모리는 속도, 용량, 비용의 특성을 감안하여 계층적으로 배치가 된다. 상위에 배치된 항목일수록 속도가 빠르고 가격이 비싸며 용량이 적다. 반대로 하위로 넘어갈수록 속도는 느려지지만 가격은 저렴해지고 용량은 커진다 레지스터(Register) cpu내부에 위치하며 가장 빠른 접근 속도를 제공한다 작은 용량을 가지고 있으며 cpu가 현재 처리하는 명령어와 데이터를 저장하는 역할을 한다 캐시(Cache) cpu와 메인메모리 사이에 존재한다 레지스터보단 느리지만 메인메모리보단 빠른 속도를 가지고 있다 자주 사용되는 데이터를 임시로 저장하여 cpu가 메인..
2023.12.28