[백준] 2210번 - 숫자판 점프 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/2210난이도 :  S2Tag : 브루트포스풀이 일자 : 2025-04-09문제 탐색하기5×5 크기의 숫자판이 주어진다.숫자판에는 0부터 9까지의 숫자가 존재한다.특정 위치에서 시작해 상, 하, 좌, 우 인접한 방향으로 총 다섯 번 이동한다.시작 위치의 숫자부터 이동한 숫자를 모두 이어 붙여 6자리 수를 만든다.한 번 지나간 칸을 다시 지나가도 된다.예를 들어 000123처럼 0이 앞에 나와도 상관없다.즉, 숫자판이 주어졌을 때 5번 이동하여 만들 수 있는 서로 다른 6자리의 수를 구하면 됩니다.가능한 시간복잡도특정 좌표 기준으로 4방향 탐색이므로 그 공간이 막혀있지 않는다 가정했을 때 경우의 수는4*4*4*4*4 = 1024가지입니다. 또한, 숫..
[백준] 1182번 - 부분수열의 합 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/1182난이도 :  S2Tag : 브루트포스풀이 일자 : 2025-04-08문제 탐색하기N: 정수로 이루어진 수열의 개수 (1 S: 모든 부분수열을 더했을때 나와야하는 값 (|S| 주어지는 정수의 절댓값은 100,000을 넘지 않는다.부분수열의 크기는 양수이다.즉, 주어진 수열의 부분수열 합이 S가 되는 모든 경우의 수를 세는 것이 목표입니다.가능한 시간복잡도O(N) :최대 수열을 받는 시간복잡도 O(2^N -1): 공집합을 제외한 부분수열을 구하는 최대 시간복잡도는 2^N -1각 수열의 원소를 선택하나, 안하나로 나눌 수 있기 때문입니다.즉 O(20) + O(1,048,575)로 완전탐색으로 접근해도 약 100만번의 연산으로 충분히 가능합니다. ..
[백준] 16937번 - 두 스티커 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/16937난이도 :  S3Tag : 브루트포스풀이 일자 : 2025-04-07문제 탐색하기모눈종이 크기: H × W스티커 개수: N각 스티커는 Ri × Ci 크기두 스티커를 겹치지 않게, 모눈종이 안에, 90도 회전 가능한 상태로 붙이고,붙인 두 스티커의 넓이의 합의 최댓값을 구하는 문제입니다. 조건 스티커는 90도 회전 가능두 스티커는 겹치면 안 됨스티커는 종이 밖으로 나가면 안 됨붙이는 방향은 격자에 맞춰야 함붙일 수 있는 스티커 두 개를 선택하여, 넓이의 합이 최대가 되도록 붙이는 경우를 찾는것이 목표입니다.가능한 시간복잡도스티커는 최대 100개 → 두 개 조합 = O(N²)각 스티커는 90도 회전 가능 → 4가지 경우씩 탐색 (2개니까 4×..
[백준] 1283번 - 단축키 지정 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/1283난이도 :  S1Tag : Simulation풀이 일자 : 2025-03-23문제 탐색하기N : 옵션의 개수 (1 옵션을 나타내는 문자열하나의 옵션은 5개 이하의 단어각 단어는 10개 이하의 알파벳단어는 공백 한 칸으로 구분 단축키 지정 방법:단어의 첫 글자부터 차례대로 확인해, 아직 단축키로 사용되지 않은 알파벳이면 그 글자를 단축키로 지정.모든 단어의 첫 글자가 이미 단축키로 지정된 경우:왼쪽부터 모든 문자를 차례로 확인하여, 단축키로 지정되지 않은 글자가 있으면 그 글자를 단축키로 지정.모든 글자가 이미 사용된 경우, 단축키 지정 없이 원래 문장 출력.대소문자 구분 없이, 단축키로 사용 여부만 판단.가능한 시간복잡도최대 옵션 수: 30..
[백준] 11060번 - 점프점프 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/11060난이도 :  S2Tag : BFS풀이 일자 : 2025-03-22문제 탐색하기미로 사이즈: 1*NN : (1 Ai : (0 i번째 칸에 쓰여져 있는 수 Ai : 재환이 오른쪽으로 점프 가능한 최대 칸의 수ex) 3번째 칸의 수가 3이면 재환이는 4,5,6번 칸 중 하나로 점프 가능 조건재환이는 미로의 맨 왼쪽에 위치가장 오른쪽 칸으로 이동이 목표최소 몇번 점프해야 갈 수 있는지 구하기가장 오른쪽 끝으로 갈 수 없는 경우 -1 출력가능한 시간복잡도한 방향(오른쪽)으로만 이동 가능하므로 사이클이 없고, 한 번 간 곳은 다시 방문할 필요가 없습니다.즉, BFS(너비 우선 탐색) 으로 최단 거리 탐색이 적절 합니다.최대 정점 수: 1,000각 정..
[백준] 2564번 - 경비원 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/2564난이도 :  S1Tag : 구현, 시뮬레이션풀이 일자 : 2025-03-21문제 탐색하기직사각형 블록 외곽에 여러 상점이 있고, 한 명의 경비원(동근)이 특정 위치에 대기 중이다.이 블록은 내부를 통과할 수 없고 오직 외곽을 따라 시계 또는 반시계 방향으로만 이동 가능하다.동근이는 상점의 호출에 따라 최단 거리로 도착해야 하며, 모든 상점까지의 최단 거리의 합을 구하는 것이 문제의 목표입니다.주어진 조건직사각형 블록의 가로 W와 세로 H (1 ≤ W, H ≤ 100)상점의 수 N (1 ≤ N ≤ 100)각 상점 및 동근이의 위치는 다음 형식으로 주어짐:방향 : 1(북), 2(남), 3(서), 4(동)거리 : 해당 변의 시작점으로부터의 거리위..
[백준] 25418 - 정수 a를 k로 만들기 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/25418난이도 :  S3Tag : ?풀이 일자 : 2025-03-19문제 탐색하기1 A와 K가 주어졌을때, 두 가지 연산만을 사용하여 A를 K로 변경해야합니다.연산A+1A*2위 두 연산을 적절히 사용하여 A를 K로 만드는 최소 횟수를 구하면 됩니다.가능한 시간복잡도백트래킹(DFS)모든 경우를 탐색하여 K가 되는 경로를 찾을 수 있습니다.하지만, 최악의 경우 O(2^N)로 시간이 오래 걸려 시간 초과가 발생합니다.BFS (너비 우선 탐색)BFS는 최소 경로 탐색에 최적화되어 있습니다.한 번 방문한 숫자는 다시 방문하지 않기에 O(N)의 시간이 걸립니다.따라서, BFS를 사용하는게 효율적인 풀이 입니다.  알고리즘 선택초기에는 백트래킹(DFS) 방식..
[백준] 2467 - 용액 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/2467 난이도 : G5Tag : Binary Search풀이 일자 : 2025-03-18문제 탐색하기N : 전체 용액 수( 2 용액은 산성(양수) 또는 알칼리성(음수)이며, 혼합하면 각 특성값의 합이 특성값이 됨 조건:N(2 ≤ N ≤ 100,000)특성값은 -1,000,000,000 ≤ X ≤ 1,000,000,000모든 용액의 특성값은 오름차순 정렬됨산성 용액만, 알칼리성 용액만 존재할 수도 있음N개의 용액 중 두 용액의 특성 값이 0에 가장 가까운 경우를 찾으면 됩니다. 가능한 시간복잡도브루트포스가장 간단하게 생각하면 브루투포스 방식(완전탐색)을 생각할 수 있습니다.가장 직관적인 방법은 이중 for문을 사용하여 모든 조합을 확인하는 것..