https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지..
https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 코딩테스트 고득점 Kit의 스택/큐 Level 2 문제다. 현재 다리를 건너고 있는 트럭들을 저장하기 위한 LinkedList를 생성해 트럭이 다리에 들어올 때마다 list에 넣는다. List에 있는 모든 Bridge의 시간을 1초씩 더해 다리를 건너도록 해야 하므로 인덱스로 접근이 가능한 LinkedList를 사용했다. List 가장 위에 있는 원소가 가장 처음으로 들어간 트럭, 즉..
https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다..
https://school.programmers.co.kr/learn/courses/30/lessons/118669 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 KAKAO TECH INTERNSHIP의 Level 3 문제다. 산봉우리에 도착후 다시 똑같은 코스로 출입구에 돌아와야 intensity가 최소가 되므로 하나의 출입구를 시작으로 산봉우리에 도착할 때만 고려해도 된다. 처음엔 BFS로 풀다가 https://tech.kakao.com/2022/07/13/2022-coding-test-summer-internship/ 위 링크를 참고해서 풀..
https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2021 카카오 채용연계형 인턴십 Level 3 문제다. 처음엔 일반 배열 하나를 사용해서 삭제된 원소는 -1로 표시하고, -1을 만나면 무시하는 방식으로 구현을 했었는데 이미 삭제된 원소까지 모두 접근을 해서 그런지 시간 초과가 떴다. 그 후에는 ArrayList를 사용했는데, 중간에 있는 원소를 삽입하고 삭제하는 속도가 느려 시간 초과가 뜬 것 같다. 그리고 java.util.LinkedLis..
https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 코딩테스트 고득점 Kit의 힙 Level 3 문제다. 문제 제목 그대로 우선순위 큐를 두개 사용하면 되는 간단한 문제다. 최소 힙과 최대 힙 둘다 생성하고, I 연산을 통해 값을 삽입할 때도 두개의 힙에 삽입한다. 그러면 자동으로 최소 힙에서 poll을 하면 최솟값이 삭제되고, 최대 힙에서 poll을 하면 최대값이 삭제될 것이다. 그리고 최솟값을 삭제할시 최대 힙에서도 동일한 값을 삭..
https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 코딩테스트 고득점 Kit의 힙 Level 3 문제다. 작업의 요청~종료 시간의 평균이 최소가 되어야 하므로 요청한 작업 중, 소요시간이 더 적게 걸리는 순서대로 정렬해야 한다. 즉 요청한 작업을 큐에 넣고 소요시간 별로 정렬하기 위해 우선순위 큐를 사용했다. 먼저 요청시점이 빠른 순서대로 우선순위 큐에 넣어야 하므로 jobs의 요청시점을 오름차순으로 정렬한다. 그리고 우선순위 큐에 들..
https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 코딩테스트 고득점 Kit의 힙 Level 2 문제다. 우선순위 큐는 힙의 원리와 동일하므로 자바의 PriorityQueue 라이브러리를 사용했다. 우선순위 큐에 scoville[] 원소를 넣으면 자동으로 가장 맵지 않은 두 음식의 스코빌 지수가 맨 앞으로 정렬될 것이다. 큐의 맨 앞 두개를 꺼내 새로운 음식을 만들고, 다시 큐에 넣는다. 큐의 가장 맨 앞의 원소가 가장 작은 스코빌 지..