Cute Running Puppy
반응형

전체 글 131

[Programmers] 연속된 부분 수열의 합 (Python)

📖문제코딩테스트 연습 - 연속된 부분 수열의 합 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr✨핵심 내용 합이 k인 부분 수열의 시작 인덱스와 마지막 인덱스를 반환- 합이 k 인 부분 수열이 여러 개 일 경우 길이가 짧은 수열 반환- 길이가 짧은 수열이 여러 개인 경우 시작 인덱스가 작은 수열 반환 🤔해결 아이디어 유형: 투포인터1. start 포인터를 기준으로 end 포인터를 이동시킨다 (for 문)2. 만약 부분 수열의 합이 k라면 (시작 인덱스, 마지막 인덱스, 배열의 길이)의 값을 ans에 ..

[Programmers] 리코쳇 로봇 (Python)

📖문제https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr✨핵심 내용 상, 하, 좌, 우 4방향 중 하나를 선택해서게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 친다. 🤔해결 아이디어 유형: BFS R에서 시작하여 미끄러져 이동하며 G에 도착해야 한다. -> 일반적인 최단거리 BFS 문제에서 이동 거리(방식)를 조정해 주면 된다! 위의 그림과 같이 로봇의 도착 위치를 표시할 수 있다. 로봇의 현재 위치에서 ..

[Programmers] 두 원 사이의 정수 쌍(Python, Java)

📖문제https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr ✨핵심 내용 두 원 사이의 x, y 좌표 모두 정수인 점의 개수 반환하기 (각 원위의 점도 세어야 한다)🤔해결 아이디어 유형: 수학 1. i를 1부터 r2까지 반복하며 해당 x 좌표에서의 원 1, 원 2의 y 좌표를 구한다 2. x가 i 일 때 두 원 사이 y 값의 최대 값은 math.sqrt(math.pow(r2, 2) - math.pow(i, 2))3. x가 i 일 때 두 원 사이 y ..

[Programmers] 요격 시스템 (Python, Java)

📖문제https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr ✨핵심 내용 A 나라 미사일: x 축에 평행한 직선 형태의 모양B 나라 미사일: x 축에 수직 한 직선 형태의 모양, 발사된 미사일은 해당 x 좌표에 걸쳐 있는 모든 미사일 관통 가능(단, 개구간이기에 s, e에서 발사하는 미사일로는 요격 불가, x가 실수인 곳에서 발사 가능)🤔해결 아이디어 유형: 그리디, 정렬🟡 구조1. targets을 e 기준으로 오름차순 정렬 2. targets을 ..

[Programmers] 등굣길 (Python, Java)

📖문제https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr ✨핵심 내용 "오른쪽과 아래쪽"으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 "1,000,000,007"로 나눈 나머지 return🤔해결 아이디어 유형: DP현재 위치(i, j)에서 경로의 값이 최대가 되려면 왼쪽(i, j-1) 혹은 위(i-1, j)에서 와야 한다 🟡dp 구조1. dp 정의 - (i, j) 위치까지 올 수 있는 최단 경로의 개수  2. dp 초기화 - 집의 ..

[programmers] 정수 삼각형 - Python, Java

📖문제코딩테스트 연습 - 정수 삼각형 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr ✨핵심 내용 - 거쳐간 숫자의 합이 가장 큰 경우 찾기 - 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 "오른쪽 또는 왼쪽"으로만 이동 가능 🤔해결 아이디어 유형: DP 현재 위치(i, j)에서 최댓값이 되려면왼쪽 위(i-1, j-1) vs 오른쪽 위(i-1, j) 중 어느 방향으로 와야 최댓값이 되는지 찾기✅정답 코드 (Python)def solution(triangle):    n = len(triangle)..

[softeer] 통근버스 출발 순서 검증하기 - python, java

📖문제Softeer - 현대자동차그룹 SW인재확보플랫폼 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai✨핵심 내용nums[i] nums[k] 를 만족하는 배열을 찾아 개수를 세기제약 조건: 3 🤔해결 아이디어 1. 3중 for 문 사용 (시간 초과)모든 가능한 조합을 만들고, if 문으로 문제 조건을 판단 -> O(n^3) 시간 복잡도로 시간 초과! 2. 백트레킹 (시간 초과)배열의 조합을 백트래킹을 활용하여 만들고 조건 판단 -> O(n^3) 시간 복잡도로 시간 초과! 3. 누적합 (정답) 제약 조건이 3  i와 k의 조합을 기준으로 nums[i]와 nums[k] 사이의 nums[i] 보다 큰 값의 개수를 세는 방법을 사용할 수 있다.  1. nums[i] nums[k] i ..

algorithm/Softeer 2024.06.29

[운영체제] 면접 예상 질문 & 답변 모음 - 인터럽트(interrupt)

2. 인터럽트가 무엇인지 설명해 주세요 인터럽트는 cpu의 작업을 방해하는 신호로 명령어 사이클이 끊어지는 상황을 의미합니다. 명령어 사이클: 하나의 명령어를 처리하는 정형화된 흐름 인터럽트는 동기 인터럽트와 비동기 인터럽트로 구분할 수 있습니다 a. 동기 인터럽트 예) cpu가 실행하는 프로그램상의 오류 CPU에 의해 발생하는 인터럽트로 예외 (exception)이라고 부릅니다. b. 비동기 인터럽트 예) cpu가 요구한 작업을 마친 입출력 장치가 보내는 완료 알림 예) 입출력 장치가 입력을 받은 후 이를 처리하기 위한 입력 알림 주로 입출력 장치에 의해 발생하는 인터럽트로 하드웨어 인터럽트라고 부릅니다. 2-1. 인터럽트는 어떻게 처리하나요 인터럽트 신호가 발생했을 때 cpu는 인터럽트 플래그를 통해..

[운영체제] 면접 예상 질문 & 답변 모음 - 시스템 콜(system call)

1. 시스템 콜이 무엇인지 설명해 주세요 시스템 콜은 사용자 모드에서 운영체제 서비스를 제공받기 위한 요청으로 시스템 콜 요청시 사용자 모드에서 커널 모드로 전환되어 cpu 자원에 접근할 수 있습니다. 이중 모드: cpu가 명령어를 실행하는 모드를 "사용자 모드"와 "커널 모드"로 구분하는 방식 - 사용자 모드 : 운영체제 서비스를 제공받을 수 없는 실행 모드 : 커널 영역의 코드를 실행할 수 없는 모드 (자원 접근 불가) - 커널 모드 : 운영체제 서비스를 제공받을 수 있는 실행 모드 : 커멀 영역의 코드를 실행할 수 있는 모드 (자원 접근 명령어 실행 가능) 1-1. 우리가 사용하는 시스템 콜의 예시를 들어주세요 대표적인 시스템 콜으로 fork(), exec(), wait(), exit()가 존재합니..

[혼공학습단 11기] 혼공 챌린지 완주 후기

기간: 2024년 1월 2일 ~ 2월 15일 (약 6주) 선택 교재: 혼자 공부하는 컴퓨터 구조 + 운영체제 관련 링크: [혼공학습단 11기] 스터디 활동과 도서별 커리큘럼 안내 » 혼자 공부하는 책 (hanbit.co.kr) [혼공학습단 11기] 스터디 활동과 도서별 커리큘럼 안내 안녕하세요, 한빛미디어 혼공학습단의 🧙‍♀️혼공족장🧙‍♀️입니다. 혼공학습단 활동과 도서별 커리큘럼 안내 드립니다. 11기 활동 기간 1주차: 1월 2일 ~ 1월 7일 2주차: 1월 8일 ~ 1월 14 hongong.hanbit.co.kr 24년 1월 1주차 부터 약 6주간 혼공학습단 11기에 참여했습니다. 본격적인 취업 준비에 앞서 전공 지식을 다시 한번 복습하면 좋을 것 같아 신청하게 되었습니다. 21년에 혼공 학습단 6..

회고 2024.02.15

[혼공 학습단 11기] 6주차 미션

기본 미션 p.400 확인 문제 1번 1. 메모리 할당 방식에 대한 설명으로 올바른 것을 다음 보기에서 찾아 써 보세요. (보기) 최초 적합, 최적 적합, 최악 접합 (①): 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식 (②): 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식 (③): 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식 정답 ① : 최초 적합 ②: 최악 적합 ③: 최적 적합 해설 메모리 할당 방식 최소 적합 적재할 수 있는 공간을 발견하면 바로 그 공간에 프로세스 배치 검색 최소화, 빠른 할당 최적 적합 적재할 수 있는 공간 중 가장 작은 공간에 프로세스 배치 최악 적합 적재할 수 있는 공간 중 가장 큰 공간에 프로세스 배치 선택 미..

[혼공컴운] chapter 14. 가상 메모리

14-1. 연속 메모리 할당 - 연속 메모리 할당: 프로세스에 연속적인 메모리 공간을 할당하는 것 스와핑 현재 실행되지 않는 프로세스를 쫓아내고 생긴 빈 공간에 다른 프로세스를 적재하여 실행하는 방식 - 스왑 영역: 프로세스들이 쫒겨나는 보조기억장치의 일부 영역 - 스왑 아웃: 현재 실행되지 않는 프로세스가 스왑 영역으로 옮겨지는 것 - 스왑 인: 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 (이전과 다른 메모리 주소에 적재될 수 있음) -> 실제 메모리 크기보다 요구하는 메모리가 클 때 활용 가능 메모리 할당 최소 적합 적재할 수 있는 공간을 발견하면 바로 그 공간에 프로세스 배치 검색 최소화, 빠른 할당 최적 적합 적재할 수 있는 공간 중 가장 작은 공간에 프로세스 배치 최악 적합 적재할 ..

[혼공컴운] chapter 13. 교착 상태

13-1. 교착 상태란 - 교착 상태: 두 개 이상의 프로세스가 자원을 기다리며 진행이 멈춰 버리는 현상 식사하는 철학자 문제 동그란 원탁에 5명의 철학자, 5개의 음식, 5개의 포크 음식은 2개의 포크로 먹을 수 있음 식사 진행 순서 1. 왼쪽 포크가 사용 가능하면 집어 든다 2. 오른쪽 포크가 사용 가능하면 집어 든다 3. 포크 2개를 집어 들면 정해진 시간 동안 식사를 한다 4. 식사 시간이 끝나면 오른쪽 포크를 내려놓는다 5. 왼쪽 포크를 내려 놓는다 6. 1 ~ 5 과정을 반복한다 이러한 과정으로 식사를 한다고 했을 때 모든 철학자가 동시에 포크를 들어 식사를 하면 어떤 철학자도 식사를 할 수 없다 즉, 모든 철학자는 다른 철학자가 포크를 내려놓을 때까지 기다려야 한다 프로세스 / 스레드 자원 ..

[혼공 학습단 11기] 5주차 미션

기본 미션 p.363 확인 문제 1번 1. 뮤텍스 락과 세마포에 대한 설명으로 옳지 않은 것을 고르세요. ① 뮤텍스 락은 임계 구역을 잠근 뒤 임계 구역에 진입함으로써 상호 배제를 위한 동기화를 이룹니다. ② 세마포는 공유 자원이 여러 개 있는 상황에서도 이용할 수 있습니다. ③ 세마포를 이용해 프로세스 실행 순서 제어를 위한 동기화도 이룰 수 있습니다. ④ 세마포를 이용하면 반드시 바쁜 대기를 해야 합니다. 정답 ④ 세마포를 이용하면 반드시 바쁜 대기를 해야 합니다. 해설 ① 뮤텍스 락은 임계 구역을 잠근 뒤 임계 구역에 진입함으로써 상호 배제를 위한 동기화를 이룹니다. - 뮤텍스 락은 자물쇠를 이용하여 임계 구역에 진입하는 방식으로 상호 배제를 위한 동기화를 이룸 - 잠그고 -> 사용하고 -> 풀고 ..

[혼공컴운] chapter 12. 프로세스 동기화

12-1. 동기화란 동기화 목적: 협력하는 프로세스들의 실행 순서와 자원의 일관성을 보장하기 위해 동기화의 의미 협력적인 프로세스를 올바르게 실행하기 위해서 프로세스 사이의 수행 시기를 맞추는 것 - 프로세스 동기화: 프로세스 사이의 수행 시기를 맞추는 것 1. 실행 순서 제어 동기화: 올바른 순서대로 실행 2. 상호 배제 동기화: 동시 접근 불가 프로세스에 한 프로세스만 접근 1. 실행 순서 제어를 위한 동기화 읽고, 쓰는 프로세스가 있을 때 읽기 프로세스는 쓰기 프로세스 뒤에 와야 한다 2. 상호 배제를 위한 동기화 동시에 접근해서는 안 되는 자원에 동시에 접근하지 못하게 하는 것 한 프로세스가 올바르게 종료되지 않고 다른 프로세스가 접근한다면 올바르지 못한 값이 나올 수 있음 process A: 2..

[혼공학습단 11기] 혼공컴운 4주차 미션

기본 미션 1. P.304 확인 문제 1번 문제 다음은 프로세스 상태를 보여주는 프로세스 상태 다이어그램입니다. 1부터 5까지 올바른 상태를 적어보세요 정답 생성 상태 준비 상태 실행 상태 종료 상태 대기 상태 해설 프로세스 상태 1. 생성 상태 (new) 프로세스를 생성중인 상태 메모리에 적재되어 PCB를 할당 받은 상태 실행할 준비가 되면 준비 상태로 이동 2. 준비 상태 (ready) cpu 할당 차례를 기다리는 상태 3. 실행 상태 (running) cpu를 할당 받아 실행중인 샅애 할당된 시간 동안만 cpu 사용 가능 할당된 시간을 모두 사용한다면 다시 준비 상태로 이동 4. 대기 상태 (blocked) 입출력장치의 작업을 기다리는 상태 입출력 작업이 완료되면 준비 상태로 변경 5. 종료 상태 ..

[혼공컴운] chapter 11. CPU 스케줄링

11-1. CPU 스케줄링 개요 운영체제가 프로세스들에게 CPU 자원을 배분 하는 것 PCB에 명시되어 있음 프로세스 우선순위 우선순위가 높은 프로세스를 먼저 처리하는 것이 효율적 입출력 집중 프로세스 입출력이 많은 프로세스 예) 비디오 재생, 디스크 백업 등 실행 상태보다 입출력을 위한 대기 상태에 많이 머무름 CPU 집중 프로세스 CPU 작업이 많은 프로세스 예) 수학연산, 컴파일, 그래픽 처리 등 대기 상태보다 실행 상태에 많이 머무름 CPU 버스트 CPU를 사용하는 작업 입출력 버스트 입출력장치를 기다리는 작업 CPU 집중 프로세스와 입출력 집중 프로세스가 동일한 빈도로 CPU를 사용하는 것은 비합리적 입출력 집중 프로세스를 빨리 실행시켜 입출력 장치를 끊임없이 작동시키고 CPU 집중 프로세스에 ..

[혼공컴운] chapter 10. 프로세스와 스레드

10-1. 프로세스 개요 포그라운드 프로세스 사용자가 볼 수 있는 공간에서 실행되는 프로세스 백그라운드 프로세스 사용자가 볼 수 없는 공간에서 실행되는 프로세스 데몬(유닉스), 서비스(윈도우) 사용자와 상호작용하지 않고 정해진 일 만 수행하는 백그라운드 프로세스 프로세스 제어 블록 (PCB) 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리하고, 프로세스에 cpu와 같은 지원을 배분할 때 사용 프로세스와 관련된 정보를 저장하는 자료구조 커널 영역에 생성 특정 프로세스 식별, 처리 정보 저장 프로세스 생성시 만들어지고, 실행이 끝나면 폐기 새로운 프로세스 생성 == PCB 생성 프로세스 종료 == PCB 제거 PCB에 저장되는 항목 1. 프로세스 ID (PID) 프로세스 식별 번호 2. 레지스터 값 해당..

[혼공컴운] chapter 09. 운영체제 시작하기

09-1. 운영체제를 알아야 하는 이유 운영체제란 프로그램에 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 프로그램 (시스템) 자원: 프로그램 실행에 필요한 요소들 cpu, 메모리, 보조기억장치, 입출력 장치와 같은 부품 커널 영역: 부팅시 운영체제가 적재되어 실행되는 공간 사용자 영역: 응용 프로그램이 적재되는 공간 (커널 영역을 제외한 나머지 공간)운영체제를 알아야 하는 이유운영체제를 통해 하드웨어의 상태, 코드 실행 상태, 문제 상황 등을 파악할 수 있기 때문 하드웨어와 프로그램을 깊이 이해할 수 있음 09-2. 운영체제의 큰 그림 운영체제의 심장, 커널 자원 접근, 조작, 프로그램 안전 실행 등 운영체제의 핵심 서비스를 담당하는 부분 사용자 인터페이스: 커널에 포함되지 않는, 사용자와 상호작..

[혼공학습단 11기] 혼공컴운 3주차 미션

기본 미션 1. P.185 확인 문제 3번 문제 3. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요. [보기| SRAM, DRAM] - 주로 캐시 메모리로 활용됩니다. [ (1) ] - 주로 주기억장치로 활용됩니다. [ (2) ] - 대용량화하기 유리합니다. [ (3) ] - 집적도가 상대적으로 낮습니다. [ (4) ] 정답 1. SRAM 2. DRAM 3. DRAM 4. SRAM 해설 DRAM dynamic RAM 저장된 데이터가 동적으로 변하는(사라지는) RAM 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장) 해야 한다 소비전력이 비교적 낮고, 저렴하고, 집적도가 높기에 일반적으로 사용하는 메모리 SRAM static RAM 저장된 데이터가 변하지 않..