본문 바로가기

알고리즘

(63)
[JAVA]백준_9663_NQueen 문제 : https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 유형 : 대표적인 Backtracking 문제 풀이 방식 : dfs의 깊이를 행으로 생각하고 1) check_col : 열체크 배열 2) check_diagonal1 : 대각선 체크 배열 1 ( check_diagonal1[row+col] ) ↗↙ 3) check_diagonal2 : 대각선 체크 배열 2 ( check_diagonal1[row-col+N]) ↖↘ ex ) N = 3일때 소스코드 p..
[JAVA]백준_2503_숫자야구 문제 : https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트�� www.acmicpc.net 문제 유형 : 브루트포스 풀이 방식 : 3중 for 문으로 모든 경우의 수 민혁이가 질문한 세 자리 수와 볼 카운트 비교 소스코드 package BOJ; import java.io.*; import java.util.*; public class BOJ_2503_숫자야구_Main { public static void main(String[] args) throws NumberFormat..
[JAVA]백준_3187_양치기꿍 문제 : https://www.acmicpc.net/problem/3187 1347번: 미로 만들기 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍 www.acmicpc.net 문제 유형 : BFS 풀이 방식 : 기본 BFS 문제 소스코드 package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.String..
[JAVA]백준_11967_불켜기 문제 : https://www.acmicpc.net/problem/11967 11967번: 불켜기 문제 농부 존은 최근에 N*N개의 방이 있는 거대한 헛간을 새로 지었다. 각 방은 (1, 1)부터 (N,N)까지 번호가 매겨져있다(2≤N≤100). 어둠을 무서워하는 암소 베시는 최대한 많은 방에 불을 밝히고 �� www.acmicpc.net 문제 유형 : 심화 bfs 풀이 방식 : 처음 지점에서 스위치가 있으면 불을 키고 불킨 지점에서 (4방탐색) 지나온 경로가 있으면 큐에 넣어준다. 처음 지점에서 4방 탐색으로 지나갈수 있는 길이있으면 큐에 넣어준다. 소스코드 package BOJ; import java.io.BufferedReader; import java.io.IOException; import ja..
[JAVA]백준_1347_미로만들기 문제 : https://www.acmicpc.net/problem/1347 1347번: 미로 만들기 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍 www.acmicpc.net 문제 유형 : 시뮬레이션, 구현 풀이 방식 : 노트에 적은 내용의 길이가 0보다 크고 50보다 작으니 현재 r과 c를 50, 50으로 두고 시뮬레이션. 소스코드 package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arra..
[JAVA]백준_13913번_숨바꼭질4 문제 : https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 �� www.acmicpc.net 문제유형 : BFS + DP 풀이방식 : (1) visited 배열에 이전 위치를 기억하면서 현재+1, 현재-1, 현재*2 이동 (2) 동생을 찾으면 거꾸로 경로를 result 배열에 정리 소스코드 package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.i..
[JAVA]백준_1120번_문자열 문제 : https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 � www.acmicpc.net 문제 유형 : 그리디 풀이 방식 : B의 글자 위치 기준으로 A비교, 2중 for문 사용 소스코드 package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer;..