본문 바로가기

알고리즘/완전탐색

(34)
백준 - 팰린드롬 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://www.acmicpc.net/problem/8892 단어 k개 중에서 2개를 붙였을 때, 그 수가 팰린드롬(앞에서 읽는 거랑 뒤에서 읽는 거랑 같으면)이면 그 문자를 출력하고, 없으면 0을 출력하시오. [접근 방법] 언뜻 보면 k개의 단어 중 2개를 선택하는 순열 문제 같지만, 만약에 ab aba가 단어로 주어지면 ab+aba => ababa는 팰린드롬이지만 abaab는 팰린드롬이 아니다. 따라서 kC2(조합)가 아닌 kP2(순열)가 된다. 그러므로 시간 복잡도는 O(kP2). kP2를 단순화하면 k!/(k..
백준 - 영화감독 숌 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://www.acmicpc.net/problem/1436 [문제 설명] n번째 종말의 숫자를 구하시오. (종말의 숫자는 연속되는 6이 3번 있는 숫자) [접근 방법] 완전탐색이라 그냥 하나 하나 계산하는 방법으로 구현했다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Main { static int N; public static void main(String[] args) throw..
백준 - 체스판 다시 칠하기 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://www.acmicpc.net/problem/1018 [문제 설명] M*N 크기의 보드판이 주어졌을 때, 8*8로 잘라서 체스판을 만드려고 한다. 체스판을 칠한 횟수가 가장 적은 경우를 구하여라. [접근 방법] 기초적인 완전탐색 문제인데, 굉장히 오랜 시간이 걸려서 풀었다. 이유는 변수의 명을 나름대로 뜻 있게 줬는데 행과 열 부분은 i,j와 같이 단순히 줘서 헷갈렸다. 이로 인해 많은 시간을 뺏겼다. 접근 방법은 예를 들어, BBBBW일 경우 B로 시작하면 BWBWB로 3번 덧칠해야한다. 반면에 W로 시작하..
백준 - 유레카 이론 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://www.acmicpc.net/problem/10448 [문제 설명] Tn이 1부터 n까지의 등차수열의 합이고, A가 주어졌을 때 A = Ta + Tb + Tc이면 1을 출력 아니면 0을 출력하라. [접근 방법] 완전탐색으로 모든 경우의 수를 조회해보기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Main { static int N; static int[] providedNumb..
백준 - 암호 만들기 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://www.acmicpc.net/problem/1759 [문제 설명] 1.모음이 1개 이상 2.자음이 2개 이상 3.암호는 알파벳 순서대로 가능한 모든 암호의 경우의 수를 출력하시오 [접근 방법] 각 인덱스별로 알파벳이 있나 없나 확인하는 문제. 시간복잡도는 O(2^n)이 된다. 있나 없나 2가지 경우의 수를 n번 반복하므로. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java..
백준 - 한수 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://www.acmicpc.net/problem/1065 [문제 설명] 1부터 N까지의 수가 있다. 이 중에 숫자의 각 자릿수가 등차수열을 이루는 경우의 개수를 구하시오. [접근 방법] 나누기와 나머지 연산을 반복해서 각 자리수의 수가 모두 같으면 추가 하는 방법 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Main { public static void main(String[] ar..
프로그래머스 - 소수 만들기 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12977 [문제 설명] 숫자를 3개 골라서 소수 만들 수 있는 경우의 수를 구하라 class Solution { int answer = 0; public int solution(int[] nums) { pickThreeNumber(0,nums,0,0); return answer; } // 소수 판별 메서드 private boolean isPrime(int number) { if (number
프로그래머스 - 모의고사 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr [문제 설명] 3개의 찍는 패턴이 있을 때, 제일 많이 맞는 패턴을 반환하세요. [처음 생각한 접근 방법] 전에 한 번 풀었던 문제로, 과거 풀었던 코드를 보니 엉망이라 다시 풀어봤습니다. 완전 탐색을 이용한 문제로 재귀를 통해서 풀어보았습니다. [이번에 풀어본 방법] import ..