분류 전체보기 104

백준 14503 로봇청소기 - BFS 풀이

문제로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오.로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다.로봇 청소기는 다음과 같이 작동한다.1. 현재 위치를 청소한다.2. 현재 위치에서 현재 방향을 기준으로 왼쪽방향부터 차례대로 탐색을 진행한다. a. 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다. ..

알고리즘 2025.02.12

프로그래머스 베스트 앨범

문제스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.속한 노래가 많이 재생된 장르를 먼저 수록합니다.장르 내에서 많이 재생된 노래를 먼저 수록합니다.장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다.노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요.제한사항genres[i]는 고유번호가 i인 노래의 장르입니다.plays[i]는 고유번호가 i인 노래가 재생된 횟수입니다.genres와 p..

알고리즘 2025.02.11

프로그래머스 주식가격

문제초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.제한 사항prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.prices의 길이는 2 이상 100,000 이하입니다.내 풀이1. prices를 큐에 삽입한다.2. 스택이 비어 있는 경우 스택에 prices에서 꺼내서 본인 인덱스와 queue_price를 저장한다. stack.append((queue_index, queue.popleft()))3. 비어있지 않은 경우, prices의 맨 앞 값과 스택의 맨 위 price 값을 비교한다. 큐의 맨 앞이 더 작다면 answer[stack_index] = queue_..

알고리즘 2025.02.11

JAVA 쓰레드 1

프로세스와 쓰레드- 프로세스란 현재 실행 중인 프로그램을 의미한다. 프로그램을 실행하면 운영체제로부터 실행에 필요한 자원을 할당 받아 프로세스가 됨 - 프로세스는 실행에 필요한 데이터, 자원, 쓰레드 등으로 구성되어 있다.- 프로세스는 적어도 하나 이상의 쓰레드가 존재한다. 둘 이상의 쓰레드를 가진 프로세스를 멀티 쓰레드 프로세스라고 한다.- 쓰레드 생성 제한이 없지만, 쓰레드 또한 메모리 공간을 필요로 하기 때문에 프로세스의 메모리 한계에 따라 생성할 수 있는 쓰레드 수가 결정된다.- 개발자가 직접 쓰레드 개수 조정 가능 프로세스 성능은 스레드의 수에 비례하지 않음- 하나의 코어는 한 번에 하나의 작업을 수행한다. 즉, 여러 쓰레드가 한 코어를 번갈아 수행하는 것이기에 쓰레드가 많다고 무..

JAVA 2025.02.11

백준 2493

문제KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 단 하나의 탑에서만 수신이 가능하다.예를 들어 높이가 6, 9, 5, 7, 4인 다섯 개의 탑이 수평 직선에 일렬로 서 있고, 모든 탑에서는 주어진 탑 순서의 반대 방향(왼쪽 방향)으로 동시에 레이저 신호를 발사한다고 하자. 그러면, 높이가 ..

알고리즘 2025.02.10