본문 바로가기

자바4

프린터 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 .. 2021. 4. 9.
등굣길 문제 설명 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000,000,007로 나눈 나머지를 return 하도록 solution 함수를 작성해주세요. 제한사항 격자의 크기 m, n은 1 이상 100 .. 2021. 3. 30.
3진법 뒤집기 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 문제풀이 10진수를 3진수로 바꾸기 위해선 아래와 같은 과정이 필요하다. 이후 나온 1200을 뒤집어 0021을 다시 10진수로 변환하기 위해선 아래의 식이 필요하다. 0 * 3³ + 0 * 3² + 2 * 3¹ + 1 = 7 이걸 아까 표에 붙이면 아래와 같다. 표를 보면 R을 구하는 한 번의 싸이클마다 그 이전 R들에 대해 3을 곱해주면 결과를 구할 수 있다 여기서 끝낸다면 배열에 R값을 추가할 때마다 그 이전 배열 값들 전부에 3을 곱하여 마지막에.. 2021. 3. 22.
[자료구조]QUEUE QUEUE 전후/선후 관계가 1:1로 선형 자료구조 FIFO(first in first out) 먼저 입력된 Data가 먼저 출력된다. 주로 우선순위가 따로 없이 순서대로 진행되어야 할 때 사용한다. 입력/추가(Enqueue)는 끝(Rear or Tail)에서만 가능하고 출력/제거(Dequeue)는 처음(Front or Head)에서만 가능 큐 구조에서 가능한 작업들은 Enqueue, Dequeue, Peek 정도가 있다. Enqueue - 큐에 데이터를 추가하는 작업으로 Rear 쪽으로 추가된다. Dequeue - 큐에서 데이터를 반환 및 삭제하는 작업으로 front에서 삭제된다. peek - 현재 반환될 데이터를 확인한다. 데이터를 확인만 할 뿐 큐에서 제거는 안 함 큐의 구현 방법에는 링크드 리스트.. 2021. 1. 22.