본문 바로가기

알고리즘 문제 풀이/완전탐색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.. 2021. 12. 30.
백준 - 영화감독 숌 본 알고리즘 풀이는 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.. 2021. 12. 25.
백준 - 체스판 다시 칠하기 본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다. 저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다. 문의는 댓글 바람. 문제 출처 : https://www.acmicpc.net/problem/1018 [문제 설명] M*N 크기의 보드판이 주어졌을 때, 8*8로 잘라서 체스판을 만드려고 한다. 체스판을 칠한 횟수가 가장 적은 경우를 구하여라. [접근 방법] 기초적인 완전탐색 문제인데, 굉장히 오랜 시간이 걸려서 풀었다. 이유는 변수의 명을 나름대로 뜻 있게 줬는데 행과 열 부분은 i,j와 같이 단순히 줘서 헷갈렸다. 이로 인해 많은 시간을 뺏겼다. 접근 방법은 예를 들어, BBBBW일 경우 B로 시작하면 BWBWB로 3번 덧칠해야한다. 반면에 W로 시작하.. 2021. 12. 25.
백준 - 유레카 이론 본 알고리즘 풀이는 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.. 2021. 12. 22.
백준 - 암호 만들기 본 알고리즘 풀이는 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.. 2021. 12. 12.
백준 - 한수 본 알고리즘 풀이는 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.. 2021. 12. 12.