코딩 테스트 연습 82

백준 11053번 가장 긴 증가하는 부분수열 (java)

[Silver II] 가장 긴 증가하는 부분 수열 - 11053문제 링크성능 요약메모리: 15352 KB, 시간: 124 ms분류다이나믹 프로그래밍제출 일자2024년 8월 27일 17:38:13문제 설명수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000)출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.풀이LIS 알고..

백준 18353번 병사 배치하기 (java) (LIS 알고리즘)

[Silver II] 병사 배치하기 - 18353문제 링크성능 요약메모리: 14784 KB, 시간: 144 ms분류다이나믹 프로그래밍, 가장 긴 증가하는 부분 수열: O(n log n)제출 일자2024년 8월 26일 22:32:43문제 설명N명의 병사가 무작위로 나열되어 있다. 각 병사는 특정한 값의 전투력을 보유하고 있으며, 병사를 배치할 때는 전투력이 높은 병사가 앞쪽에 오도록 내림차순으로 배치를 하고자 한다. 다시 말해 앞쪽에 있는 병사의 전투력이 항상 뒤쪽에 있는 병사보다 높아야 한다.또한 배치 과정에서는 특정한 위치에 있는 병사를 열외시키는 방법을 이용한다. 그러면서도 남아있는 병사의 수가 최대가 되도록 하고 싶다.예를 들어, N=7일 때 나열된 병사들의 전투력이 다음과 같다고 가정하자.이 때 ..

백준 1463번 1로 만들기 (java)

[Silver III] 1로 만들기 - 1463문제 링크성능 요약메모리: 79372 KB, 시간: 216 ms분류다이나믹 프로그래밍제출 일자2024년 8월 25일 22:25:49문제 설명정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오.입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 풀이다이나믹 프로그래밍으로 한 번 풀어봤다. 다이나믹 프로그래밍이란 이전의 결과를 저장하고 다음 함수에 사..

백준 19621번 회의실 배정 (java)

[Silver II] 회의실 배정 2 - 19621문제 링크성능 요약메모리: 14168 KB, 시간: 132 ms분류다이나믹 프로그래밍제출 일자2024년 8월 18일 20:28:19문제 설명서준이는 아빠로부터 N개의 회의와 하나의 회의실을 선물로 받았다. 각 회의는 시작 시간, 끝나는 시간, 회의 인원이 주어지고 한 회의실에서 동시에 두 개 이상의 회의가 진행될 수 없다. 단, 회의는 한번 시작되면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작 시간은 끝나는 시간보다 항상 작다. N개의 회의를 회의실에 효율적으로 배정할 경우 회의를 진행할 수 있는 최대 인원을 구하자.입력첫째 줄에 회의의 수 N이 주어진다. 둘째 줄부터 N + 1 줄까지 공백을 사이에 ..

백준 5567번 결혼식 (java)

[Silver II] 결혼식 - 5567문제 링크성능 요약메모리: 20124 KB, 시간: 176 ms분류그래프 이론, 그래프 탐색제출 일자2024년 8월 18일 02:29:59문제 설명상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다.상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m ≤ 10000)이 주어진다. 다음 줄부터 m개 줄에는 친구 관계 ai bi가 ..

백준 14496번 그대, 그머가 되어 (java)

[Silver II] 그대, 그머가 되어 - 14496문제 링크성능 요약메모리: 20844 KB, 시간: 180 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 8월 16일 16:02:13문제 설명선린에 합격한 대호에게는 큰 고민이 있다. 대호는 중학교 3년 내내 공부만 했기 때문에, 요즘 학생들이 사용하는 ‘야민정음’에 대해서는 문외한이다. 친구들의 대화에 끼고 싶은 대호는 야민정음을 공부하기로 했다.야민정음이란, 비슷한 모양의 글자를 원래 문자 대신에 사용하는 것을 일컫는다. 예를 들어, ‘그대’는 ‘그머’로, ‘팔도비빔면’은 ‘괄도네넴댼’으로, ‘식용유’는 ‘식용윾’으로, ‘대호’는 ‘머호’로 바꿀 수 있다. 아무 문자나 치환할 수 있는 건 아니며 치환이 가능한 몇 개의 문자들..

백준 11123번 양 한마리... 양 두마리... (java)

[Silver II] 양 한마리... 양 두마리... - 11123문제 링크성능 요약메모리: 21352 KB, 시간: 220 ms분류너비 우선 탐색, 깊이 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 8월 15일 16:39:38문제 설명얼마전에 나는 불면증에 시달렸지... 천장이 뚫어져라 뜬 눈으로 밤을 지새우곤 했었지. 그러던 어느 날 내 친구 광민이에게 나의 불면증에 대해 말했더니 이렇게 말하더군. "양이라도 세봐!" 정말 도움이 안되는 친구라고 생각했었지. 그런데 막상 또 다시 잠을 청해보려고 침대에 눕고 보니 양을 세고 있더군... 그런데 양을 세다보니 이걸로 프로그램을 하나 짜볼 수 있겠단 생각이 들더군 후후후... 그렇게 나는 침대에서 일어나 컴퓨터 앞으로 향했지.양을 # 으로 나..

백준 18352번 특정 거리의 도시 찾기 (java)

[Silver II] 특정 거리의 도시 찾기 - 18352문제 링크성능 요약메모리: 260008 KB, 시간: 780 ms분류너비 우선 탐색, 데이크스트라, 그래프 이론, 그래프 탐색, 최단 경로제출 일자2024년 8월 14일 23:39:39문제 설명어떤 나라에는 1번부터 N번까지의 도시와 M개의 단방향 도로가 존재한다. 모든 도로의 거리는 1이다.이 때 특정한 도시 X로부터 출발하여 도달할 수 있는 모든 도시 중에서, 최단 거리가 정확히 K인 모든 도시들의 번호를 출력하는 프로그램을 작성하시오. 또한 출발 도시 X에서 출발 도시 X로 가는 최단 거리는 항상 0이라고 가정한다.예를 들어 N=4, K=2, X=1일 때 다음과 같이 그래프가 구성되어 있다고 가정하자.이 때 1번 도시에서 출발하여 도달할 수 ..

백준 18232번 텔레포트 정거장 (java)

[Silver II] 텔레포트 정거장 - 18232문제 링크성능 요약메모리: 129632 KB, 시간: 1392 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 8월 13일 18:56:17문제 설명꽉꽉나라에 사는 주예와 방주는 점 S에서 만나 저녁을 먹기로 했다. 주예는 점 S에 도착했지만 길치인 방주가 약속시간이 30분이 지나도 나타나지 않자 방주에게 연락을 하여 방주가 점 E에 있다는 사실을 알아냈다. 주예는 방주에게 그 위치에 가만히 있으라고 했고, 직접 점 E로 가려고 한다.꽉꽉나라에는 1부터 N까지의 각 점에 하나의 텔레포트 정거장이 위치해 있고 텔레포트를 통하여 연결되어 있는 다른 텔레포트의 정거장으로 이동할 수 있다. 주예는 현재 위치가 점 X라면 X+1이나 X-1로 이..

백준 14248번 점프 점프 (java)

[Silver II] 점프 점프 - 14248문제 링크성능 요약메모리: 33164 KB, 시간: 260 ms분류너비 우선 탐색, 깊이 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 8월 12일 23:42:04문제 설명영우는 개구리다 개굴개굴개굴영우는 지금 n개의 돌이 일렬로 놓여있는 돌다리에 있다. 그리고 돌다리의 돌에는 숫자가 하나씩 적혀있다. 영우는 이 숫자가 적혀있는 만큼 왼쪽이나 오른쪽으로 점프할 수 있는데, 이때 돌다리 밖으로 나갈 수는 없다.영우는 이 돌다리에서 자기가 방문 가능한 돌들의 개수를 알고 싶어한다. 방문 가능하다는 것은 현재위치에서 다른 돌을 적절히 밟아 해당하는 위치로 이동이 가능하다는 뜻이다.현재 위치가 주어졌을 때, 영우가 방문 가능한 돌들의 개수를 출력하시오.입력..