dfs
-
BOJ 11724번 연결 요소의 개수 c++ 및 java 풀이 난이도: 실버3 백준 11724번 연결 요소의 개수 문제 정리 방향 없는 그래프가 주어질때 그래프의 연결 요소(Connected Component)의 개수를 구하시오 연결 요소 란?? 그래프는 여러 개의 고립된 그래프로 구성될 수 있는데 서로 연결된 여러 개의 고립된 그래프 각각을 연결 요소라고 한다. 연결 요소의 특징 연결 성분에 속한 모든 정점을 연결하는 경로가 있어야 한다. 또 다른 연결 성분에 속한 정점과 연결하는 경로가 있으면 안된다. BFS, DFS를 통해 시작 정점으로부터 도달 가능한 모든 정점들이 하나의 연결성분이 된다. 문제 접근 처음에 주어진 예제를 잘못 보고 문제를 이해를 잘 못해서 빨리 풀지 못했습니다 ㅠㅠㅠ 예제를 똑바..
[유니온 파인드, bfs] 백준 11724번 연결 요소의 개수 c++, java 풀이BOJ 11724번 연결 요소의 개수 c++ 및 java 풀이 난이도: 실버3 백준 11724번 연결 요소의 개수 문제 정리 방향 없는 그래프가 주어질때 그래프의 연결 요소(Connected Component)의 개수를 구하시오 연결 요소 란?? 그래프는 여러 개의 고립된 그래프로 구성될 수 있는데 서로 연결된 여러 개의 고립된 그래프 각각을 연결 요소라고 한다. 연결 요소의 특징 연결 성분에 속한 모든 정점을 연결하는 경로가 있어야 한다. 또 다른 연결 성분에 속한 정점과 연결하는 경로가 있으면 안된다. BFS, DFS를 통해 시작 정점으로부터 도달 가능한 모든 정점들이 하나의 연결성분이 된다. 문제 접근 처음에 주어진 예제를 잘못 보고 문제를 이해를 잘 못해서 빨리 풀지 못했습니다 ㅠㅠㅠ 예제를 똑바..
2020.06.28 -
BOJ 1463번 1로 만들기 자바(java) 풀이 난이도: 실버3 백준 1463번 1로 만들기 문제 정리 정수 X가 3으로 나누어 떨어지면, 3으로 나눈다 정수 X가 2로 나누어 떨어지면, 2로 나눈다 1을 뺀다 위의 3가지 연산을 이용해 주어진 정수 N을 1로 만드려고 한다. 연산을 사용하는 횟수의 최솟값을 구하여라 1
[dfs, dp] 백준 1463번 1로 만들기 자바 풀이BOJ 1463번 1로 만들기 자바(java) 풀이 난이도: 실버3 백준 1463번 1로 만들기 문제 정리 정수 X가 3으로 나누어 떨어지면, 3으로 나눈다 정수 X가 2로 나누어 떨어지면, 2로 나눈다 1을 뺀다 위의 3가지 연산을 이용해 주어진 정수 N을 1로 만드려고 한다. 연산을 사용하는 횟수의 최솟값을 구하여라 1
2020.06.18 -
BOJ 1107 리모콘 자바(java) 풀이 랭크 : 골드5 백준 1107 리모컨 문제 정리 리모컨의 일부 숫자 버튼이 고장났다. 리모컨에는 0~9까지의 숫자 버튼과ㅏ +, - 버튼이 있다 '+' 버튼은 +1된 채널, '-' 버튼은 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이고, 고장난 버튼이 주어질 때, 채널 N으로 이동하기 위해 최소 몇번 버튼을 눌러야 하는지 구하시오 이동하려는 채널 최대 500,000 수빈이가 지금 보고 있는 채널은 100번 문제 접근 이 문제는 다음과 같은 사항을 고려하여야 합니다 고장난 버튼 수가 없는 경우 -> 입력 받지 않음 원하는 번호가 100번인 경우 -> 0 출력하고..
[완전탐색, 백트래킹] 백준 1107번 리모컨 자바 풀이BOJ 1107 리모콘 자바(java) 풀이 랭크 : 골드5 백준 1107 리모컨 문제 정리 리모컨의 일부 숫자 버튼이 고장났다. 리모컨에는 0~9까지의 숫자 버튼과ㅏ +, - 버튼이 있다 '+' 버튼은 +1된 채널, '-' 버튼은 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이고, 고장난 버튼이 주어질 때, 채널 N으로 이동하기 위해 최소 몇번 버튼을 눌러야 하는지 구하시오 이동하려는 채널 최대 500,000 수빈이가 지금 보고 있는 채널은 100번 문제 접근 이 문제는 다음과 같은 사항을 고려하여야 합니다 고장난 버튼 수가 없는 경우 -> 입력 받지 않음 원하는 번호가 100번인 경우 -> 0 출력하고..
2020.06.10 -
sw expert academy 2112번 보호 필름 자바(java) 풀이 모의 SW 역량 테스트 sw expert academy 2112번 보호 필름 문제 정리 보호 필름은 얇은 막 D개를 쌓아서 만든다 얇은 막은 동일한 크기를 가진 바 모양의 셀들이 가로방향으로 W개 붙여서 만든다 (두께 D 가로크기 W의 보호필름 완성!) 각 셀들은 특성 A 또는 B를 가진다. 충격은 보호 필름 단면의 세로 방향으로 가해지므로 세로방향의 특성이 중요하다 단면의 모든 세로방향에 대해서 동일한 특성의 셀들이 K개 이상 연속적으로 있는 경우에만 성능검사를 통과할 수 있다. 약품을 투입해서 가로 방향의 셀들을 모두 하나의 특성으로 변경할 수 있다. (약품 A -> 모두 A로 변경 / 약품 B -> 모두 B로 변경) 약품을 ..
[dfs, 백트래킹] sw expert academy 2112번 보호 필름 자바 풀이sw expert academy 2112번 보호 필름 자바(java) 풀이 모의 SW 역량 테스트 sw expert academy 2112번 보호 필름 문제 정리 보호 필름은 얇은 막 D개를 쌓아서 만든다 얇은 막은 동일한 크기를 가진 바 모양의 셀들이 가로방향으로 W개 붙여서 만든다 (두께 D 가로크기 W의 보호필름 완성!) 각 셀들은 특성 A 또는 B를 가진다. 충격은 보호 필름 단면의 세로 방향으로 가해지므로 세로방향의 특성이 중요하다 단면의 모든 세로방향에 대해서 동일한 특성의 셀들이 K개 이상 연속적으로 있는 경우에만 성능검사를 통과할 수 있다. 약품을 투입해서 가로 방향의 셀들을 모두 하나의 특성으로 변경할 수 있다. (약품 A -> 모두 A로 변경 / 약품 B -> 모두 B로 변경) 약품을 ..
2020.05.22 -
프로그래머스 네트워크 자바(java) 풀이 Level 3 BFS/DFS 네트워크 문제 정리 컴퓨터A와 컴퓨터 B가 연결되있고, 컴퓨터 B와 컴퓨터 C가 연결되있으면 A와 C도 간접적으로 연결되 정보를 주고 받을 수 있다. 따라서 A,B,C는 같은 네트워크 상에 있다고 볼 수 있다. 각 컴퓨터는 0부터 n-1인 정수로 표현된다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]=1 이다. computers[i][i]는 항상 1이다. 문제 풀이 이 문제는 그래프로 바꿔서 생각하면 쉬운 문제입니다. level2에 놔도 될것 같네요 그래프 형태로 생각해서 bfs나 dfs를 이용해 탐색합니다. 저는 bfs를 이용했습니다. 방문하지 않은 경우 bfs를 이용해 탐색합니다. bfs로 이어져 있는..
[BFS] 프로그래머스 level3 네트워크 자바 풀이 (자세한 설명)프로그래머스 네트워크 자바(java) 풀이 Level 3 BFS/DFS 네트워크 문제 정리 컴퓨터A와 컴퓨터 B가 연결되있고, 컴퓨터 B와 컴퓨터 C가 연결되있으면 A와 C도 간접적으로 연결되 정보를 주고 받을 수 있다. 따라서 A,B,C는 같은 네트워크 상에 있다고 볼 수 있다. 각 컴퓨터는 0부터 n-1인 정수로 표현된다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]=1 이다. computers[i][i]는 항상 1이다. 문제 풀이 이 문제는 그래프로 바꿔서 생각하면 쉬운 문제입니다. level2에 놔도 될것 같네요 그래프 형태로 생각해서 bfs나 dfs를 이용해 탐색합니다. 저는 bfs를 이용했습니다. 방문하지 않은 경우 bfs를 이용해 탐색합니다. bfs로 이어져 있는..
2020.05.10 -
BOJ 16987번 계란으로 계란치기 문제 자바(java) 풀이 랭크 : 실버3 백준 16987번 계란으로 계란치기 문제 정리 계란으로 계란을 치는 경우 다음과 같은 점들을 고려한다. 1.1 계란에는 내구도와 무게가 정해져 있다. 1.2 계란으로 서로를 치면 계란의 내구도는 상대 계란의 무게 만큼 깎이게 된다. 1.3 내구도가 0이 되는 순간 계란이 깨진다. 계란을 왼쪽 부터 차례로 들어 한 번씩만 다른 계란을 쳐서 최대한 많은 계란을 깨려고 한다. 계란을 치는 과정은 다음과 같다. 3.1 가장 왼쪽 계란을 든다. 3.2 손에 든 계란으로 깨지지 않은 계란중 하나를 친다. 만약 손에 든 계란이 깨졌거나 깨지지 않은 계란이 없다면 아무일도 하지 않는다. 3.3 최근에 든 계란의 바로 오른쪽 계란을 들고 반..
[DFS] 백준 16987번 계란으로 계란치기 자바(java) 풀이BOJ 16987번 계란으로 계란치기 문제 자바(java) 풀이 랭크 : 실버3 백준 16987번 계란으로 계란치기 문제 정리 계란으로 계란을 치는 경우 다음과 같은 점들을 고려한다. 1.1 계란에는 내구도와 무게가 정해져 있다. 1.2 계란으로 서로를 치면 계란의 내구도는 상대 계란의 무게 만큼 깎이게 된다. 1.3 내구도가 0이 되는 순간 계란이 깨진다. 계란을 왼쪽 부터 차례로 들어 한 번씩만 다른 계란을 쳐서 최대한 많은 계란을 깨려고 한다. 계란을 치는 과정은 다음과 같다. 3.1 가장 왼쪽 계란을 든다. 3.2 손에 든 계란으로 깨지지 않은 계란중 하나를 친다. 만약 손에 든 계란이 깨졌거나 깨지지 않은 계란이 없다면 아무일도 하지 않는다. 3.3 최근에 든 계란의 바로 오른쪽 계란을 들고 반..
2020.04.01