전체 글 205

[프로그래머스] 카펫 for JAVA _ 완전 탐색 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr x = 가로, y = 세로 크기라고 하면 1. (x - 2) * (y - 2) = yellow 2. x * y = brown + yellow 가 된다. 코드 class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int area = brown + yel..

[프로그래머스] 소수 찾기 for JAVA _ 완전 탐색 알고리즘 + 순열, 소수찾기

https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 어려워 고려해야할점은 1. 숫자 조합하기 2. 소수인지 확인 소수인지 확인하는 방법은 에라토스테네스의 체를 사용함 숫자를 조합하는게 문제인데 누가봐도 순열임 순열이 뭐냐면 예를 들어 numbers = 0,1,2,3 이었다고 하면 나올 수 있는 수가 1자리수 : 0, 1, 2, 3 2자리수 : 01, 02, 03, 10, 12, 13, 20, 21,..

[프로그래머스] 모의고사 for JAVA _ 완전탐색 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 완전탐색 유형에 있는 level1짜리 문제이다. 학생 1,2,3의 문제 번호는 계속 반복되므로 이걸 answer의 길이만큼 반복해서 비교해야 한다. 코드 import java.util.ArrayList; class Solution { public int[] solution(int[] answers) { int[] answer = {}; int[] student1..

[프로그래머스] 타겟 넘버 for JAVA _ DFS 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 깊이/너비 우선 탐색 유형에 있는 문제이다. 문제를 보면 4 1 2 1 에서 +4,-4, +1-1, +2-2, +1-1을 모두 탐색해야 하므로 완전 탐색으로 살펴봐야 한다는 것은 알겠다. 여기서 조합을 어떻게 해야하냐가 문제인데 이렇게 풀었다...... 코드 class Solution { public static int answer = 0..

[BaekJoon] 백준 1010번 _ 다리 놓기 for JAVA _ 조합

https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 다리 안겹치게 짓는거... N 0) return dp[m][n]; // 재활용 if(m == n || n == 0) return dp[m][n] = 1; return dp[m][n] = bridge(m - 1, n - 1) + bridge(m - 1, n); // n+1 C r+1 = n C r + n C r+1 } } https://st-lab.tistory.com/194 : 설명 잘된 블로그

알고리즘/백준 2022.02.08

[BaekJoon] 백준 2644번 _ 촌수계산 for JAVA _ BFS 알고리즘

https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net BFS씀 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokeniz..

알고리즘/백준 2022.02.06

[BaekJoon] 백준 11725번 _ 트리의 부모 찾기 for JAVA _ BFS 알고리즘

https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net BFS로 풀었다. 코드 package Baek; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Baek11725 {..

알고리즘/백준 2022.02.05

[BaekJoon] 백준 7562번 _ 나이트의 이동 for JAVA _ BFS 알고리즘

https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net BFS로 풀었다. 걍 전형적인.. 문제이다.... dx[], dy[]의 범위에만 신경써주면 됨 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.Strin..

알고리즘/백준 2022.02.03

[BaekJoon] 백준 1697번 _ 숨바꼭질 for JAVA _ BFS 알고리즘

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net BFS로 풀어야하는 문제이다. 풀이 방법은 문제에 나온 순서만 살펴보면 위 그림처럼 나올 것이다. next == K 인지 확인하고 맞다면 check[temp] 를 출력하면 된다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java...

알고리즘/백준 2022.02.01

[BaekJoon] 백준 7569번 _ 토마토 for JAVA _ BFS 알고리즘

https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 얘도 토마토네? 백준 7576번이랑 배열만 다른 문제이다.. https://ticssfm.tistory.com/80?category=970752 [BaekJoon] 백준 7576번 _ 토마토 for JAVA _ BFS 알고리즘 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. ..

알고리즘/백준 2022.01.31