[백준 / Java] 2529번: 부등호 (브루트포스 + 백트래킹)
·
CS & Algorithm
코테99 13일차 문제는 백준 2529번 '부등호'다.  문제 이해주어진 부등호(> 또는 숫자는 0~9의 정수 중에서 선택하며, 중복되지 않아야 한다.예를 들어, 부등호가 이면 가능한 최대값은 897, 최소값은 021이 된다.접근 방법이 문제는 백트래킹(Backtracking) 기법을 사용하면 쉽게 해결할 수 있다. 백트래킹을 이용한 풀이 과정DFS(깊이 우선 탐색)를 이용하여 모든 경우의 수 탐색0~9의 숫자를 방문 여부(visited[])를 체크하면서 탐색.k개의 부등호를 만족하는 k+1자리 숫자가 만들어지면 최댓값/최솟값을 갱신.백트래킹을 이용해 조건에 맞지 않으면 즉시 탐색 종료현재 숫자와 다음 숫자의 관계가 부등호와 맞지 않으면 건너뜀.알고리즘 진행 순서입력값을 받아 부등호 배열(char[] a..
[백준 / Java] 1051번: 숫자 정사각형 (브루트포스 알고리즘)
·
CS & Algorithm
코테99 11일차 문제는 백준 1051번 '숫자 정사각형'이다.  이번 문제도 완전 탐색 (브루트포스) 알고리즘을 활용하는 문제였다.  접근 방법꼭짓점에에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는다.정사각형은 행 또는 열에 평행해야 한다.알고리즘 진행 순서입력된 값을 배열에 넣는다.전체(N*M)를 도는데, 가능한 최대 정사각형 크기 안에서 반복하여 최대 정사각형을 구한다.최대 정사각형을 출력한다.구현 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int[][] arr..
[백준 / Java] 1018번: 체스판 다시 칠하기 (브루트포스 알고리즘)
·
CS & Algorithm
오늘의 문제는 백준 1018번 '체스판 다시 칠하기'다.    접근 방법M*N 크기의 보드를 8*8 크기의 체스판으로 잘라낸 후 다시 칠해야 하는 정사각형의 최소 개수를 구한다.체스판은 검은색과 흰색이 번갈아서 칠해쳐 있어야 한다. 알고리즘 진행 순서입력된 값을 배열에 넣는다.8 x 8 크기의 체스판을 자를 수 있는 구간 안에서 다시 칠해야 하는 값(count)의 최소값을 구한다.count는 8 x 8  체스판 안에서 시작 색과 같을 경우와 아닌 경우를 구분하여 각각 다시 칠해야 하는 개수를 ++하고 그 중 최솟값을 반환한다.최솟값을 출력한다. 구현 코드package Boj;// 체스판 다시 칠하기import java.io.BufferedReader;import java.io.IOException;imp..
[99클럽 코테 스터디] 10일차 TIL - 백준 2573번 빙산(자바 Java)
·
CS & Algorithm
[99클럽 코테 스터디] 8일차 TIL - 백준 2667번 단지 번호 붙이기(자바 Java)
·
CS & Algorithm
오늘은 백준 2667번 단지번호 붙이기 문제를 풀면서 DFS(깊이 우선 탐색)를 활용한 풀이를 정리해보려고 한다.📝 문제 개요정사각형 지도에서 1은 집이 있는 곳, 0은 집이 없는 곳을 의미한다.상하좌우로 연결된 집들을 하나의 단지(Connected Component) 로 간주하고,각 단지 내 집의 개수를 오름차순으로 출력하는 문제다.입력 예시편집70110100011010111101010000111010000001111100111000출력 예시3789🔍 접근 방법1️⃣ 2차원 배열을 활용하여 지도 표현입력값을 N × N 크기의 2차원 배열 arr에 저장한다.문자열을 charAt(j) - '0'을 이용해 int 값으로 변환해서 저장한다.2️⃣ DFS를 사용하여 연결된 단지 탐색지도 전체를 탐색하며, 방..
[99클럽 코테 스터디] 6일차 TIL - 백준 1260번 DFS와 BFS
·
CS & Algorithm
오늘의 문제는 백준 1260번 'DFS와 BFS'였다. 이 문제는 DFS와 BFS를 구현하는 간단한 문제다. 성공 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;// 1260 DFS와 BFSpublic class Main { static int[][] graph; static boolean[] visited; static StringBuilder sb = new StringBuilder(); static Queue q ..