분류 전체보기(196)
-
사탕 게임 (백준 3085)
문제상근이는 어렸을 적에 "봄보니 (Bomboni)" 게임을 즐겨했다.가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다.사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오.입력첫째 줄에 보드의 크기 N이 주어진다. (3 ≤ N ≤ 50)다음 N개 줄에는 보드에 채워져 있는 사탕의 색상이 주어진다. 빨간색은 C, 파란색은 P, 초록색은 Z, 노란색은 Y로 주어진다.사탕의 색이 다른 인접한 두 칸이 존재하는..
2024.04.29 -
프로세스 개요
📌프로그램, 프로세스, 스레드프로그램은 설치하여 2차 메모리에 저장된다.설치된 프로그램을 실행하면 프로세스가 생성된다. 그리고 각각의 프로세스는 PID를 가지게 된다.스레드는 프로세스 속에 존재하는 실행단위이다. 즉, 프로세스가 관리의 단위라면 스레드는 실행의 단위이다.스레드는 프로세스에게 할당된 자원을 공유한다.프로세스 제어블록(PCB)모든 프로세스가 동시에 CPU를 사용할 수 없다. 타이머 인터럽트(타임아웃 인터럽트)가 발생하면 자신의 차례를 양보하고 다음 차례를 기다린다.운영체제는 이러한 실행순서를 관리하며 프로세스에게 CPU를 비롯한 자원을 배분한다. 이를 위해 PCB를 사용한다.PCB는 태그와 비슷하다. 운영체제는 커널 영역에 생성된 PCB를 통해 특정 프로세스를 식별하고 프로세스를 처리하는데..
2024.04.27 -
Level 2️⃣ - 리코쳇 로봇
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🚀문제 접근bfs 탐색을 생각할 수 있는데 장애물을 만나거나 범위에 벗어날 때까지는 쭉 미끄러져야한다.이 부분을 구현하는 것이 어려웠다.그리고 항상 visited 배열을 이용해서 최단거리를 구했는데 count라는 변수를 이용해서 목적지점까지의 최단거리를 구할 수 있다.조금 변형되어도 스스로 느끼기에 난이도가 확 높아진 느낌이다. 더 많은 문제를 풀어봐야겠다.function solution(board..
2024.04.25 -
Level 2️⃣ - 수식 최대화
https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🚀문제 접근우선순위의 경우의 수는 부호가 총 3가지이므로 6가지이다.만약 우선 순위가 - > + > * 라면 - 연산부터 모두 하고, 그 다음에 + 연산, 그 다음에 * 연산을 이어서 해주면 된다.그림으로 표현하면 다음과 같다. 그렇다면 입력값으로 주어지는 "100-200*300-500+20" 이라는 문자열을 부호기호와 숫자를 분리해야한다.[100, -, 200, *, 3..
2024.04.24 -
✨운영체제의 큰 그림
프로그램 실행에 마땅히 필요한 요소들을 시스템 자원 줄여서 자원이라고 한다.CPU, 메모리, 보조기억장치, 입출력장치 등이 프로그램 실행에 필요한 자원인 것이다. 이렇게 실행할 프로그램에게 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 프로그램이 운영체제이다. 운영체제는 프로그램의 실행을 돕는 프로그램이기 때문에 다른 프로그램과 마찬가지로 메모리에 적재된다. 이때 운영체제는 커널 영역에 적재된다. 커널 영역을 제외한 나머지 영역을 사용자 영역이라고 하는데 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 응용 프로그램에게 자원을 할당하고 이들이 올바르게 실행되도록 돕는다. 요약하면 운영체제는 응용 프로그램과 하드웨어 사이에서 응용 프로그램에게 필요한 자원을 할당하고 응용 프로그램이 올바르..
2024.04.24 -
명령어 사이클과 인터럽트
명령어 사이클프로그램 속 각각의 명령어들은 일정한 주기가 반복되며 실행되는데 이 주기를 명령어 사이클이라고 한다.CPU가 메모리로부터 명령어를 읽어오는 주기를 인출 사이클이라고 하며, CPU 내부의 제어장치가 명령어 레지스터로부터 명령어를 읽고 제어신호를 발생시켜 명령어를 실행하는 사이클을 실행 사이클이라고 한다. 하지만 모든 명령어들이 인출 사이클과 실행 사이클만 반복하는 것은 아니다.예를 들어 간접 주소 지정 방식은 메모리에 곧바로 접근하는 것이 아니라 유효 주소를 가지고 있는 메모리에 한번 더 접근이 이루어져야한다. 이렇게 메모리 접근이 더 필요한 경우를 간접 사이클 단계라고 한다.인터럽트인터럽트는 CPU의 정상적인 작업을 방해하는 신호이다.인터럽트의 종류에는 동기 인터럽트와 비..
2024.04.24