프로그래머스 2

[프로그래머스] 보행자 천국 - Java

문제 설명 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 해당 문제는 메모제이션을 통해 출발 지점인 (0, 0) 부터 도착 지점인 (m - 1, n - 1) 까지 도달할 수 있는 경로를 구하도록 했습니다. DFS를 이용하여 도달할 수 있는 경로를 일일이 카운팅하는 법도 있겠지만 m과 n이 최대 500까지 되므로 시간 초과 이슈로 인해 적용하기엔 다소 어렵습니다. 우선 파라미터로 입력받는 지도 데이터인 cityMap과 별도로 메모제이션을 위한 sum 배열을 선언해주었습니다. 이때 배열을 다음과 같이 3차원 배열로 선언해주었는데, 이에 대해선 좀 ..

[프로그래머스] 디스크 컨트롤러 - Java

문제 설명 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 해당 문제는 우선순위 큐를 활용하여 해결할 수 있었습니다. 문제 조건 분석 문제에서는 각 작업별로 최초 요청 시간과 작업 시간이 주어졌을 때, 각 작업별로 요청되는 시간부터 작업이 종료되는 시간(이하 '처리 시간' = 대기 시간 + 실행 시간)의 '최소' 평균을 요구하고있습니다. 이때 각 작업별 처리 시간 동안 작업의 상태를 다음과 같이 나타내볼 수 있겠습니다. 여기서 실행 시간은 고정되어있는 값으로, 각 작업별 처리 시간의 최소 평균을 구하기 위해서는 대기 상태를 최대한 줄이는 노력이 ..