알고리즘
[백준] 10282번 : 해킹 Gold4(골드4) - JAVA[자바]
[Gold IV] 해킹 - 10282문제 링크성능 요약메모리: 151944 KB, 시간: 860 ms분류데이크스트라, 그래프 이론, 최단 경로제출 일자2024년 6월 18일 00:56:54문제 설명최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 그로부터 일정 시간 뒤 a도 감염되고 만다. 이때 b가 a를 의존하지 않는다면, a가 감염되더라도 b는 안전하다.최흉최악의 해커 yum3이 해킹한 컴퓨터 번호와 각 의존성이 주어질 때, 해킹당한 컴퓨터까지 포함하여 총 몇 대의 컴퓨터가 감염되며 그에 걸리는 시간이 얼마인지 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트..
[백준] 1253번 : 좋다 Gold4(골드4) - JAVA[자바]
[Gold IV] 좋다 - 1253문제 링크성능 요약메모리: 12688 KB, 시간: 124 ms분류이분 탐색, 자료 구조, 정렬, 두 포인터제출 일자2024년 6월 18일 00:30:07문제 설명N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다.N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라.수의 위치가 다르면 값이 같아도 다른 수이다.입력첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수)출력좋은 수의 개수를 첫 번째 줄에 출력한다. 접근 방법1. 각 값에 대하여 투 포인터를 사용하기 위해서 정렬한다.(n ..
[백준] 14731번 : 謎紛芥索紀 (Large) Silver1(실버1) - JAVA[자바]
[Silver I] 謎紛芥索紀 (Large) - 14731문제 링크성능 요약메모리: 37048 KB, 시간: 292 ms분류미적분학, 분할 정복을 이용한 거듭제곱, 수학제출 일자2024년 6월 17일 23:59:48문제 설명성민이는 이번 학기에 미적분학 과목을 수강하고 있다. 다항함수의 미분 단원 과제를 하던 도중 미분을 하기가 귀찮아진 성민이는 미분하려는 함수 f(x)가 주어지면, 미분 된 함수 f’(x)를 자동으로 구해주는 프로그램을 만들어서 계산을 줄일 생각을 하였다. 우리도 성민이가 원하는 프로그램을 한번 같이 만들어보도록 하자.입력첫째 줄에는 항의 개수 N(1 ≤ N ≤ 100000)이 주어진다.둘째 줄부터 N개 줄에 걸쳐서 항의 계수 C(0 )와 항의 차수 K(0 ≤ K ≤ 109)가 항의 차..
[백준] 2229번 : 조 짜기 Gold5(골드5) - JAVA[자바]
[Gold V] 조 짜기 - 2229문제 링크성능 요약메모리: 11996 KB, 시간: 108 ms분류다이나믹 프로그래밍제출 일자2024년 6월 16일 18:04:51문제 설명알고스팟 캠프에 N(1 ≤ N ≤ 1,000)명의 학생들이 참여하였다. 학생들은 열심히 공부를 하고 있었는데, 어느 날 조별 수업을 진행하기로 하였다. 조별 수업의 목적은 잘 하는 학생들과 덜 잘 하는 학생들을 같은 조로 묶어서 서로 자극을 받으며 공부하도록 만들기 위함이다. 따라서 가급적이면 실력 차이가 많이 나도록 조를 편성하는 것이 유리하다.하지만 조를 편성할 때 같은 조에 속하게 된 학생들의 나이 차이가 많이 날 경우에는 오히려 부정적인 효과가 나타날 수도 있다. 따라서 선생님들은 우선 학생들을 나이 순서대로 정렬한 다음에,..
[백준] 20208번 : 진우의 민트초코우유 Gold5(골드5) - JAVA[자바]
[Gold V] 진우의 민트초코우유 - 20208문제 링크성능 요약메모리: 12356 KB, 시간: 132 ms분류백트래킹, 브루트포스 알고리즘제출 일자2024년 6월 15일 19:47:43문제 설명진우는 민트초코우유를 좋아하는 민초단이다. 힘든 일이 있더라도 민트초코우유 하나를 마시면 기운이 펄펄 솟는다고 한다!민트초코우유를 너무 좋아하는 나머지 진우는 매일 아침 특정 지역들에서 민트초코우유가 배달된다는 N × N 크기의 2차원 민초마을로 이사를 하였다.진우는 아침에 눈을 뜨면 집에서 민초마을의 지도를 들고 민트초코우유를 찾으러 출발한다. 이때의 초기 체력은 M이다. 여기에서 체력은 진우가 이동할 수 있는 거리를 나타낸다. 진우는 지도상에서 상, 하, 좌, 우로 1칸씩 이동할 수 있으며 이동하면 체력이..
[백준] 5549번 : 행성 탐사 Gold5(골드5) - JAVA[자바]
[Gold V] 행성 탐사 - 5549문제 링크성능 요약메모리: 81220 KB, 시간: 624 ms분류누적 합제출 일자2024년 6월 8일 13:07:06문제 설명상근이는 우주선을 타고 인간이 거주할 수 있는 행성을 찾고 있다. 마침내, 전 세계 최초로 인간이 거주할 수 있는 행성을 찾았다. 이 행성은 정글, 바다, 얼음이 뒤얽힌 행성이다. 상근이는 이 행성에서 거주 할 수 있는 구역의 지도를 만들어 지구로 보냈다.상근이가 보내온 지도는 가로 Ncm, 세로 Mcm 직사각형 모양이다. 지도는 1cm 크기의 정사각형으로 나누어져 있고, 각 구역의 지형이 알파벳으로 표시되어 있다. 지형은 정글, 바다, 얼음 중 하나이며, 정글은 J, 바다는 O, 얼음은 I로 표시되어 있다.지구에 있는 정인이는 조사 대상 영..
[백준] 3687번 : 성냥개비 Gold2(골드2) - JAVA[자바]
[Gold II] 성냥개비 - 3687문제 링크성능 요약메모리: 13788 KB, 시간: 80 ms분류다이나믹 프로그래밍, 그리디 알고리즘제출 일자2024년 6월 7일 14:09:27문제 설명성냥개비는 숫자를 나타내기에 아주 이상적인 도구이다. 보통 십진수를 성냥개비로 표현하는 방법은 다음과 같다.성냥개비의 개수가 주어졌을 때, 성냥개비를 모두 사용해서 만들 수 있는 가장 작은 수와 큰 수를 찾는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스는 최대 100개 이다. 각 테스트 케이스는 한 줄로 이루어져 있고, 성냥개비의 개수 n이 주어진다. (2 ≤ n ≤ 100)출력각 테스트 케이스에 대해서 입력으로 주어진 성냥개비를 모두 사용해서 만들 수 있는 가장 작은 수와 가..
[백준] 14676번 : 영우는 사기꾼? Gold3(골드3) - JAVA[자바]
[Gold III] 영우는 사기꾼? - 14676문제 링크성능 요약메모리: 63620 KB, 시간: 384 ms분류방향 비순환 그래프, 그래프 이론, 구현제출 일자2024년 6월 6일 11:45:17문제 설명영선이와 영우는 최근 ‘우주전쟁’ 이라는 게임을 시작했다. ‘우주전쟁’은 1대1로 하는 RTS(실시간 전략 게임) 게임으로, 각 플레이어는 건물을 건설하고, 건물에서 유닛을 생성하여 싸운다. ‘우주전쟁’은 건물을 짓는 순서가 정해져 있는데, 예를 들어 건물들이 다음과 같은 관계도를 가진다고 할 때,2, 3번 건물은 반드시 1번 건물이 건설된 상태여야 지어질 수 있고, 4번 건물은 반드시 2, 3번 건물이 건설된 상태여야 지어질 수 있다. 단 4번 건물은 1번 건물과는 직접적인 연관이 없기 때문에 1번..