본문 바로가기

분류 전체보기162

[백준] 1783번: 병든 나이트 (Java) 1 . 문제 설명병든 나이트가 N × M 크기 체스판의 가장 왼쪽아래 칸에 위치해 있다.병든 나이트의 이동 가능한 방향:2칸 위로, 1칸 오른쪽1칸 위로, 2칸 오른쪽1칸 아래로, 2칸 오른쪽2칸 아래로, 1칸 오른쪽이동 조건:조건 1: 이동 횟수가 4번 초과이면 → 이동 방법을 모두 한 번씩 사용해야 한다.조건 2: 이동 횟수가 4번 이하이면 → 이동 방법에 제한이 없다.병든 나이트가 방문할 수 있는 칸의 최대 개수를 구한다.체스판의 세로 N, 가로 M: N, M ≤ 2,000,000,000 → long 시간 제한: 2초메모리 제한: 128MB 2. 접근 방식N과 M의 크기에 따라 경우를 나누어 생각한다.N = 1위아래로 움직일 수 없다. 이동 횟수는 0 ⇒ 1칸N=22칸 위아래 이동이 불가능하다. 2.. 2025. 8. 13.
[백준] 4963번: 섬의 개수 (Java) 1 . 문제 설명정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성한다.가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다.걸어갈 수 있는 경로가 있어야 같은 섬에 있는 것이다.지도는 바다로 둘러싸여 있으며, 지도 밖으로 나갈 수 없다.지도의 너비 w와 높이 h: 50보다 작거나 같은 양의 정수지도 정보: 1은 땅, 0은 바다입력의 마지막 줄에는 0이 두 개 주어진다. 시간 제한: 1초메모리 제한: 128MB 2. 접근 방식입력지도의 너비 w와 높이 h를 입력받는다.h개 줄의 지도 정보를 입력받는다.w와 h가 모두 0이면 프로그램을 종료한다.지도의 모든 위치를 순회한다.아직 방문하지 않은 위치에서 DFS를 사용한다. → 섬 개수 + 1DFS.. 2025. 8. 12.
[프로그래머스] JadenCase 문자열 만들기 (Java) 1 . 문제 설명JadenCase: 모든 단어의 첫 문자가 대문자이고, 그 외의 알베벳은 소문자인 문자열.단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자.문자열 s를 JadenCase로 바꾼 문자열을 리턴하는 함수를 구한다.s는 길이 1 이상 200 이하인 문자열s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있음숫자는 단어의 첫 문자로만 나옴숫자로만 이루어진 단어는 없음공백문자가 연속해서 나올 수 있음 2. 접근 방식for문으로 s를 한 문자씩 char로 변환한다.현재 문자가 공백이면boolean prevBlank를 true로 설정한다.현재 문자가 prevBlank가 true일 때대문자로 변환한다.prevBlank를 false로 설정한다.현재 문자가 prevBlank가 false일 때소.. 2025. 8. 11.
[백준] 18126번: 너구리 구구 - BFS (Java) 1 . 문제 설명너구리 구구는 N개의 방을 가지고 있다. 입구를 포함한 모든 방은 1부터 N까지의 번호가 있고, 입구는 1번이다. 입구는 1개이고, 입구와 모든 방들은 총 N-1 개의 길로 서로 오고 갈 수 있다. 입구에서 최대한 먼 방에 아이스크림을 숨기려고 한다.집 입구에서 아이스크림을 숨기려고 하는 방까지 이동하는 거리를 구한다.방 개수: 1 ≤ N ≤ 5,000모든 길의 정보 A, B, C: 1 ≤ A, B ≤ N, 1 ≤ C ≤ 1,000,000,000A번 방과 B번 방 사이를 양방향으로 연결하는 길의 길이가 C 시간 제한: 1초메모리 제한: 1024MB 2. 접근 방식인접 리스트(List[] list)로 방 정보를 저장한다. (방 → 트리)방 정보 클래스(Room): 방 번호(num, int).. 2025. 8. 11.
[백준] 9996번: 한국이 그리울 땐 서버에 접속하지 (Java) 1 . 문제 설명특정 패턴과 일치하는 파일 이름을 출력하지 못하는 문제가 생겼다.패턴은 알파벳 소문자 여러 개와 별표(*) 하나로 이루어진 문자열이다.패턴에 있는 별표를 알파벳 소문자 또는 빈 문자열로 이루어진 임의의 문자열로 변환해 파일 이름과 같게 만들 수 있어야 한다.ex) "abcd", "ad", "anestonestod"는 모두 패턴 "a*d"와 일치한다. 하지만, "bcd"는 일치하지 않는다.패턴과 파일 이름이 모두 주어졌을 때, 각각의 파일 이름이 패턴과 일치하는지 아닌지를 구하는 프로그램을 작성한다.파일의 개수 N: 1 ≤ N ≤ 100패턴알파벳 소문자와 별표(아스키값 42) 한 개로 이루어짐문자열의 길이는 100 이하별표는 문자열의 시작과 끝에 없음파일 이름알파벳 소문자로만 이루어짐길이는.. 2025. 8. 10.
[백준] 14495번: 피보나치 비스무리한 수열 (Java) 1 . 문제 설명피보나치 비스무리한 수열은 f(n) = f(n-1) + f(n-3)인 수열이다.f(1) = f(2) = f(3) = 1 이며 나열하면 → 1, 1, 1, 2, 3, 4, 6, 9, 13, 19, …자연수 n을 입력받아 n번째 피보나치 비스무리한 수열을 구한다.자연수 n: 1 ≤ n ≤ 116시간 제한: 2초메모리 제한: 512MB 2. 접근 방식동적 계획법(DP) 방식을 사용한다.dp 배열 (long[] dp)을 사용하여 초기값(1, 2, 3번째는 1)을 설정한 후,점화식(f(n) = f(n-1) + f(n-3)) 기반으로 n번째까지 수를 구하고, 출력한다. 3. 틀린 이유 설명백준 제출 시 “런타임 에러” 발샘import java.io.*;public class Main { pub.. 2025. 8. 8.
[백준] 18126번: 너구리 구구 - DFS (Java) 1 . 문제 설명너구리 구구는 N개의 방을 가지고 있다. 입구를 포함한 모든 방은 1부터 N까지의 번호가 있고, 입구는 1번이다. 입구는 1개이고, 입구와 모든 방들은 총 N-1 개의 길로 서로 오고 갈 수 있다. 입구에서 최대한 먼 방에 아이스크림을 숨기려고 한다.집 입구에서 아이스크림을 숨기려고 하는 방까지 이동하는 거리를 구한다.방 개수: 1 ≤ N ≤ 5,000모든 길의 정보 A, B, C: 1 ≤ A, B ≤ N, 1 ≤ C ≤ 1,000,000,000A번 방과 B번 방 사이를 양방향으로 연결하는 길의 길이가 C시간 제한: 1초메모리 제한: 1024MB 2. 접근 방식List[] room: N+1 크기의 ArrayList를 사용한다. (인접리스트로 방의 트리 정보 저장)N-1 개의 간선 정보를 .. 2025. 8. 8.
반응형