본문 바로가기

문제풀이/프로그래머스15

[JAVA] 프로그래머스 - 여행경로 (문제 설명) (제한 사항) DFS(깊이 우선 탐색) 알고리즘을 구현하여 해결하는 문제이다. 코드를 다 짜고 나니깐, 굳이 map으로 하지 않고 Arraylist를 사용해도 됐다는 것을 깨달았다. 알고리즘 구현 방법 1. tickets 배열 정렬 2. "ICN"을 시작으로, 연결할 수 있는 티켓(ticket[n][1]) map에 넣기 ** map의 key는 인덱스, value는 ticket[n][1]을 저장함. 3. map의 크기가 tickets.length+1 이 안된다면 백트래킹 (2, 3번 반복) 4. answer 배열에 넣기 public static void main(String[] args) throws ParseException { String[][] tickets= {{"ICN","B"},{.. 2021. 2. 7.
[JAVA] 프로그래머스 - 디스크 컨트롤러 (문제 설명) (제한 사항) 해당 문제는 CPU 스케줄링 알고리즘 중 SJF(Shortest Job First) 알고리즘 구현 문제이다. 가장 짧게 수행하는 프로세스가 우선순위가 높게 선정되어 CPU를 점유하게 되면 전체 처리 평균 시간을 줄일 수 있다. (하지만 이 알고리즘의 단점은 수행 시간이 긴 프로세스들을 계속해서 CPU를 점유할 수 없다는 것.) 알고리즘 구현 방법 1. 배열 jobs[][] 정렬 2. 요청이 들어온 작업 Map에 넣기 3. 소요시간이 가장 적은 작업부터 Map에서 제거하기 (2,3번 반복) 4. 요청시간 평균 구하기 public static void main(String[] args) { /*14*/ int[][] jobs = {{0, 10}, {2, 10}, {9, 10}, .. 2021. 2. 2.
[JAVA] 프로그래머스 - 뉴스 클러스터링 ** 코드는 맨 아래 (설명) (예시) (고려사항) (출력형식) (코드) import java.util.HashMap; class Solution { public int solution(String str1, String str2) { int answer = 0; int sum1=0, sum2=0, inter=0; HashMap map1 = new HashMap(); HashMap map2 = new HashMap(); str1 = str1.toLowerCase(); str2 = str2.toLowerCase(); String match = "^[a-zA-Z]*$"; // 집합 A 개수 구하기 for(int i=0; i 2020. 12. 27.