[백준][Java] 2583번 : 영역 구하기
·
PS/백준
[문제 링크]https://www.acmicpc.net/problem/2583문제 설명눈금의 간격이 1인 M×N 크기의 모눈종이 위에 K개의 직사각형을 그릴 때, K개의 직사각형의 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어진다. M, N과 K 그리고 K개의 직사각형의 좌표가 주어질 때, K개의 직사각형 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어지는지, 그리고 분리된 각 영역의 넓이가 얼마인지를 구하여 이를 출력하는 프로그램을 작성하시오. 입력첫째 줄에 M, N, K둘째줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 두 꼭짓점의 x, y값(직사각형의 왼쪽 아래 꼭짓점, 오른쪽 위 꼭짓점)출력분리되어 나눠지는 영역의 개수각 영역의 넓이입출력 예시입력예시출력예시5 7 3 0..
[이코테][Java] 괄호 변환
·
PS/이코테
[문제링크]https://school.programmers.co.kr/learn/courses/30/lessons/60058문제 설명개발자 "콘"은 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 한다.균형잡힌 괄호 문자열 - '(' 개수와 ')'의 개수가 맞을 경우올바른 괄호 문자열 - '('와 ')'의 괄호 짝도 모두 맞을 경우ex) "(()))(" 는 균형잡힌 괄호 문자열이지만 올바른 괄호 문자열은 아니다. "(())()"는 균형잡힌 괄호 문자열이면서 올바른 괄호문자열이다. '('와 ')'로만 이루어진 문자열 w가 "균형잡힌 괄호 문자열"이라면, 다음과 같은 과정을 거쳐서 "올바른 괄호 문자열"로 변환할 수 있다.1. 입력이 빈 문자열인 경우, 빈 문자열을..
[이코테][Java] 미로 탈출
·
PS/이코테
문제 설명동빈이는 n × m 크기의 직사각형 형태의 미로에 갇혀 있다.동빈이의 위치는 (1, 1), 미로의 출구는 (n, m)이고, 한번에 한 칸씩 이동할 수 있다.미로에서 괴물이 있는 부분은 0, 괴물이 없는 부분은 1로 표시되어있을 때, 동빈이가 미로를 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오.(칸을 셀 때는 시작칸과 마지막칸을 모두 포함해서 계산한다.) 입력조건첫째 줄에 정수 N, M다음 N개의 줄에 각각 M개의 정수로 미로의 정보출력조건최소 이동 칸의 개수입출력 예시입력예시출력예시5 610101011111100000111111111111110 문제 풀이최소 칸의 개수를 구하기 위해서 BFS 알고리즘 사용시작 지점에서 가까운 지점부터 차례대로 탐색하면서 값이 1일 경우queue에..
[이코테][Java] 음료수 얼려 먹기
·
PS/이코테
문제 설명N * M 크기의 얼음 틀에서 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다.구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주할 때, 얼음 틀에서 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 입력조건첫 번째 줄에 N과 M두 번째 줄부터 얼음 틀의 형태출력조건한 번에 만들 수 있는 아이스크림의 개수입출력 예시입력예시출력예시4 500110000111111100000315 14 00000111100000 11111101111110 11011101101110 11011101100000 11011111111111 11011111111100 11000000011111 01111111111111 00000000011111..
[이코테][Java] 특정 거리의 도시 찾기
·
PS/이코테
문제 설명어떤 나라에 1 ~ N번까지의 도시와 M개의 단방향 도로가 존재하고, 모든 도로의 거리는 1이다.이 때 특정한 도시 X로부터 출발하여 도달할 수 있는 모든 도시 중, 최단 거리가 정확히 K인 모든 도시의 번호를 출력하는 프로그램을 작성하세요. 입력조건첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X둘째 줄부터 M개의 줄에 걸쳐서 두개의 자연수 A, B출력조건X로부터 출발하여 도달할 수 있는 도시 중 최단거리가 K인 모든 도시의 번호 출력하나도 존재하지 않으면 -1 출력입출력 예시입력예시출력예시4 4 2 11 21 32 32 44 문제 풀이BFS 알고리즘 사용BFS 알고리즘을 사용해서 특정한 도시 X로부터 모든 도시까지의 최단 거리를 구하고, 그 값이 K인 ..
[알고리즘] DFS & BFS
·
자료구조 & 알고리즘
DFS(Depth First Search) : 깊이 우선 탐색그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘해당 그래프를 완벽하게 탐색스택 자료구조(or 재귀 함수) 사용 1. 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다.2. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리한다. 방문하지 않은 인접 노드가 없으면, 스택에서 최상단 노드를 꺼낸다.3. 2번 과정을 더 이상 수행할 수 없을 때까지 반복한다. DFS 구현public static boolean[] visited = new boolean[9]; //방문 처리 배열public static ArrayList> graph = new ArrayList>(); //그래프를 표현하는 인접리스트publ..