알고리즘 - Baekjoon/Gold

    [백준] 3190번 : 뱀 Gold4(골드4) - JAVA[자바]

    [Gold IV] 뱀 - 3190 문제 링크 성능 요약 메모리: 12704 KB, 시간: 104 ms 분류 자료 구조, 덱, 구현, 큐, 시뮬레이션 제출 일자 2024년 1월 8일 22:46:00 문제 설명 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시..

    [백준] 12100번 : 2048(Easy) Gold2(골드2) - JAVA[자바]

    [Gold II] 2048 (Easy) - 12100 문제 링크 성능 요약 메모리: 15272 KB, 시간: 136 ms 분류 백트래킹, 브루트포스 알고리즘, 구현, 시뮬레이션 제출 일자 2024년 1월 6일 16:02:08 문제 설명 2048 게임은 4×4 크기의 보드에서 혼자 즐기는 재미있는 게임이다. 이 링크를 누르면 게임을 해볼 수 있다. 이 게임에서 한 번의 이동은 보드 위에 있는 전체 블록을 상하좌우 네 방향 중 하나로 이동시키는 것이다. 이때, 같은 값을 갖는 두 블록이 충돌하면 두 블록은 하나로 합쳐지게 된다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. (실제 게임에서는 이동을 한 번 할 때마다 블록이 추가되지만, 이 문제에서 블록이 추가되는 경우는 없다)..

    [백준] 2636번 : 치즈 Gold4(골드4) - JAVA[자바]

    [Gold IV] 치즈 - 2636 문제 링크 성능 요약 메모리: 12580 KB, 시간: 100 ms 분류 너비 우선 탐색, 그래프 이론, 그래프 탐색, 구현, 시뮬레이션 제출 일자 2023년 12월 26일 13:54:37 문제 설명 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓여 있지 않으며 치즈에는 하나 이상의 구멍이 있을 수 있다. 이 치즈를 공기 중에 놓으면 녹게 되는데 공기와 접촉된 칸은 한 시간이 지나면 녹아 없어진다. 치즈의 구멍 속에는 공기가 없지만 구멍을 둘러싼 치즈가 녹아서 구멍이 열리면 구멍 속으로 공기가 들어가게 된다. 의 경우, 치즈의 구멍을 둘러..

    [백준] 9466번 : 텀 프로젝트 Gold3(골드3) - JAVA[자바]

    [Gold III] 텀 프로젝트 - 9466 문제 링크 성능 요약 메모리: 300236 KB, 시간: 1088 ms 분류 깊이 우선 탐색, 그래프 이론, 그래프 탐색 제출 일자 2023년 12월 23일 18:48:12 문제 설명 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶은 학생을 선택해야 한다. (단, 단 한 명만 선택할 수 있다.) 혼자 하고 싶어하는 학생은 자기 자신을 선택하는 것도 가능하다. 학생들이(s1, s2, ..., sr)이라 할 때, r=1이고 s1이 s1을 선택하는 ..

    [백준] 7569번 : 토마토 Gold5(골드5) - JAVA[자바]

    [Gold V] 토마토 - 7569 문제 링크 성능 요약 메모리: 120956 KB, 시간: 660 ms 분류 너비 우선 탐색, 그래프 이론, 그래프 탐색 제출 일자 2023년 12월 21일 14:32:12 문제 설명 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토..

    [백준] 7576번 : 토마토 Gold5(골드5) - JAVA[자바]

    [Gold V] 토마토 - 7576 문제 링크 성능 요약 메모리: 120552 KB, 시간: 576 ms 분류 너비 우선 탐색, 그래프 이론, 그래프 탐색 제출 일자 2023년 12월 21일 13:40:50 문제 설명 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 ..

    [백준] 2206번 : 벽 부수고 이동하기 Gold3(골드3) - JAVA[자바]

    [Gold III] 벽 부수고 이동하기 - 2206 문제 링크 성능 요약 메모리: 119400 KB, 시간: 592 ms 분류 너비 우선 탐색, 그래프 이론, 그래프 탐색 제출 일자 2023년 12월 20일 15:05:09 문제 설명 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동하여도 된다. 한 칸..

    [백준] 1016번 : 제곱ㄴㄴ수 Gold1(골드1) - JAVA[자바]

    [Gold I] 제곱 ㄴㄴ 수 - 1016 문제 링크 성능 요약 메모리: 12708 KB, 시간: 124 ms 분류 수학, 정수론, 소수 판정, 에라토스테네스의 체 제출 일자 2023년 12월 19일 18:14:50 문제 설명 어떤 정수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 그 수를 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수가 몇 개 있는지 출력한다. 입력 첫째 줄에 두 정수 min과 max가 주어진다. 출력 첫째 줄에 min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수의 개수를 출력한다. 풀이 방법 1. min과 max의 최대 범위가 크기 때문에 Long 타입을 사용해야함 2. min과 m..