- [ Algorithm/백준 ][BOJ] 1254 : 팰린드롬 만들기 - java2024-07-04 13:44:15문제https://www.acmicpc.net/problem/1254문제풀이입력된 문자가 처음부터 팰린드롬인지 확인한다.아닐 경우 반복하여 검사하며 팰린드롬 구조로 만드는 작업을 해야 한다.앞부분 문자를 추출하여 뒤집고 뒷부분에 맞춘 후 팰린드롬인지 체크한다.팰린드롬이 될 때까지 추출하는 앞 문자 개수를 늘려간다.소스코드import java.io.*;public class _1254 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Buffe..
- [ Algorithm/백준 ][BOJ] 3019 : 테트리스 - java2024-06-21 17:29:27문제https://www.acmicpc.net/problem/3019문제풀이7가지 모양의 블록이 주어지고 입력한 블록이 90도, 180도, 270도 회전하여 모양을 변경하는 경우를 생각한다.1,3,4 블록 : 2가지 / 2블록 : 1가지 / 5,6,7블록 : 4가지의 모양으로 변경할 수 있다.문제에서 언급된 대로 행은 고려하지 않고 블록이 떨어질 바닥면 높낮이만 생각한다.블록의 아랫면만 체크하면 되기에 String[][] blocks에 각 회전하여 닿는 부분을 "0", "1"로 표현하였다.ex) ㄴ: 000, ㄱ: 110, ㅜ: 101, ㅓ: 10블록의 모양별로 전체 열에 대해 순회를 하며 블록의 아래모양과 바닥이 같은지 비교(빈칸 발생)하며 카운트한다.소스코드import java.io.BufferedR..
- [ Algorithm/알고리즘 ]브루트포스 탐색 알고리즘2024-06-04 10:24:53브루트포스 알고리즘이란?브루트포스 알고리즘은 가능한 모든 경우를 탐색하여 문제를 해결하는 방법입니다. "완전 탐색"이라고도 불리며, 무차별 대입 방식으로 모든 후보를 검사합니다. 이는 가장 기본적인 알고리즘 기법 중 하나입니다.브루트포스 알고리즘의 특징단순성: 구현이 간단하고 이해하기 쉬움완전성: 해가 존재한다면 반드시 찾아냄비효율성: 경우의 수가 많을 경우 시간이 많이 소요됨브루트포스 알고리즘의 장점쉬운 구현: 복잡한 논리나 데이터 구조가 필요 없으며, 직접적인 접근 방식으로 쉽게 구현할 수 있습니다.명확한 해답 보장: 모든 경우의 수를 확인하기 때문에 해답이 존재하면 반드시 찾아냅니다.브루트포스 알고리즘의 단점비효율성: 입력 크기가 커질수록 탐색해야 할 경우의 수가 급격히 증가하여, 시간 복잡도가 매..