dfs 15

2022-08-28 [11회차] 알고리즘 스터디

1. 팔 - 실버1 08-28 일 출처 https://www.acmicpc.net/problem/1105 1105번: 팔 첫째 줄에 L과 R이 주어진다. L은 2,000,000,000보다 작거나 같은 자연수이고, R은 L보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net MySol) ======= 미해결 코드 ======== import java.util.Scanner; public class Test { static int findEight(String s){ int eightCnt = 0; for(char c : s.toCharArray()) { if (c == '8') { ++eightCnt; } } return eightCnt; } public s..

2022-07-27 [8회차] 알고리즘 스터디

1. 카카오 프렌즈 컬러링북 - lv 2 출처 https://school.programmers.co.kr/learn/courses/30/lessons/1829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr MySol) 9.1ms - 전형적인 DFS알고리즘 문제이다. import java.util.Arrays; // 프로그래머스 컬러링북 - DFS public class Test1 { static int[][] Direction = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; static boolean[][] Visited; static..

[3주차] Coding Test 해시 / BFS / DFS / 동적계획법

1. 위장 import java.util.*; class Solution { public static int solution(String[][] clothes) { Map map = new HashMap(); int answer = Arrays.stream(clothes) // 모든 옷의 종류에 대해 .map(c->c[1]) // 각 type은 1번 index에 있는 값이다. (종류만 얻어와서) .distinct() // 중복을 제거한다. (타입을 얻어 온다.) .map(type -> (int) Arrays.stream(clothes).filter(c-> c[1].equals(type)).count()) // 타입에 해당하는 것들만 필터링해서 카운트 얻어 온다. .map(c -> c + 1) // 타입 ..

Code up 4060 전광판 전구 조작

Ex) /* 5 6 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 */ import java.util.Scanner; public class Billboard { static int M, N; static int MAX_COUNT = 501; static int[][] AdjMatrix = new int[MAX_COUNT][MAX_COUNT]; static int[][] VisitMatrix = new int[MAX_COUNT][MAX_COUNT]; static int[][] DirMatrix = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; static int DIRECTION = 4; static int cnt = 0; s..

Code up 4714 BAEKJOON 2458 키 순서

Ex) 자신이 키가 몇 번째인지 알 수 있는 학생이 모두 몇 명인지를 출력한다. - 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. - 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 6번만 키를 비교하였고, 그 결과가 다음과 같다고 하자. 1번 학생의 키 < 5번 학생의 키 3번 학생의 키 < 4번 학생의 키 5번 학생의 키 < 4번 학생의 키 4번 학생의 키 < 2번 학생의 키 4번 학생의 키 < 6번 학생의 키 5번 학생의 키 < 2번 학생의 키 - 이 비교 결과로부터 모든 학생 중에서 키가 가장 작은 학생부터 자신이 몇 번째인지 알 수 있는 학생들도 있고 그렇지 못한 학생들도 있다는 사실을 아래처럼 ..

Code up 2605 캔디팡

Ex) import java.util.Arrays; import java.util.Scanner; public class CandyPang { /* 7 2 1 5 1 1 3 4 2 1 5 1 3 5 3 2 3 4 5 2 2 4 4 4 3 2 3 1 3 4 3 5 3 1 4 3 5 4 4 3 3 5 5 2 1 3 5 1 1 2 */ static int uCnt = 0; static int Size = 7; static int[][] VisitMatrix = new int[ 200][200]; static int[][]AdjMatrix = new int[200][200]; static int DIRECTION = 4; static int[][] DirMatrix = {{-1, 0}, {1, 0}, {0, -..

DFS 촌수 찾기 (오류 수정 전)

Ex) import java.util.Scanner; public class DegreeOfKinship { /* 입력코드 9 7 3 7 1 2 1 3 2 7 2 8 2 9 4 5 4 6 출력 3 */ static int MAX_COUNT = 101; static int VCnt; static int StartVertax; static int TargetVertax; static int flag; static int[][] AdjMatrix = new int[MAX_COUNT][MAX_COUNT]; static int[] VisitMarix = new int[MAX_COUNT]; static int ECnt, uCnt = 0; public static void main(String[] args) { Sc..

Codeup 4421 BaekJoon 2667 단지번호 붙이기

Ex) 첫 번째 줄에는 총 단지수를 출력하시오. 그리고 각 단지내 집의 수를 오름차순으로 정렬하여 한 줄에 하나씩 출력하시오 - 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. - 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. - 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. - 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. - 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. - 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤2..

Code up 4024 호수의 수 구하기

Ex) 주어진 지도를 분석하여 호수의 개수를 구하는 프로그램을 작성하시오. - 다음은 어느 호수 지역의 지도를 간략하게 표현한 것이다. 지도는 'L'또는 '.'으로 이루어 진다. - 'L'이 의미하는 것은 호수 영역이고 '.'은 호수 이외의 영역을 의미한다. - 단, 호수가 상, 하, 좌, 우, 대각선으로 이어진 것은 하나의 호수로 간주한다. L . . . . . . . . L . . . L . . . . . . . L L . L L . . . . . . . . L . . L . . . . . . . . . L . . L . . . . . . . . L . . . . . . L . . . . . . . . . . L . L . . . . . . . . L . L . L . . . . . . . . L ...

Code up 그림 개수 세기

Ex) 2차원 배열 import java.util.*; public class DfsCountPicture { static int DIRECTION = 4; static int MAX_COUNT = 101; static int [][] g_nAdjMatrix = new int[MAX_COUNT][MAX_COUNT]; static int [][] g_nVisitMatrix = new int[MAX_COUNT][MAX_COUNT]; static int g_uVCount = 10, g_uECount; static int [][]g_nDirMatrix = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; public static void main(String[] args) { int uPictur..