일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ElementTree
- openssl
- 백준
- 위클리 6주차
- 부분 수열의 합
- BFS
- 너비우선탐색
- 1174
- Java
- BOJ
- 완전 탐색
- 좋은 수열
- dfs
- 백트래킹
- 몯느 순열
- 위클리 챌린지
- 그래프
- 백트렉킹
- 프로그래머스
- 문서자동화
- 복서 정렬하기
- 줄어드는 숫자
- 순열장난
- DP
- 입실 퇴실
- 코딩테스트
- 백트랙킹
- 재귀
- 10597
- 39080
목록BOJ (32)
개발자-H 입니다.
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 백트래킹 완전탐색으로 구할 수 있는 문제이다. 초반에 시간 초과로 꾀 고생을 했는데 집을 선택하는 순서는 관계 없기 때문에 오름 차순 식으로 풀면 통과 할 수 있다. 결론적으로 아래의 문제에서 입력 형식과 결과 도출만 달라진 문제였다. N과 M(2) import java.io.*; import java.util.*; public class Main { public static..
https://www.acmicpc.net/problem/13301 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net 버튼을 누를 때마다 for문을 순회하며 구현 할 수도 있는 문제이다. 주어진 조건을 보면 아래와 같은 점화식을 세울 수 있다. import java.io.*; import java.util.*; public class Main { public static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); p..
https://www.acmicpc.net/problem/18429 18429번: 근손실 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 www.acmicpc.net 백트래킹 탐색 문제이다. 3대 500 이하 일시 바로 탐색을 종료해버리면 된다. import java.io.*; import java.util.*; public class Main { public static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); private static int N..
https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 기본적인 완전 탐색이다. 해당 문제를 풀며 실행 속도에 대해 조금 고민을 했었는데 최적화 결과는 사진과 같다. 재귀 함수 파라메터를 전역변수로 옮김 (548 -> 316) StringBuilder.append 함수를 " " -> ' '로 변경 (316->256) Java에서 " "는 String Class 를 생성하는 것 같다. import java.io.*; import java.util.*; public class Main { public static final BufferedRea..
https://www.acmicpc.net/problem/3980 3980번: 선발 명단 각각의 테스트 케이스에 대해서, 모든 포지션의 선수를 채웠을 때, 능력치의 합의 최댓값을 한 줄에 하나씩 출력한다. 항상 하나 이상의 올바른 라인업을 만들 수 있다. www.acmicpc.net 백트래킹을 활용한 완전 탐색 문제이다. 주어진 포지션의 개수와 플레이어 포지션 별 능력을 활용하여 완전 탐색 후 최대 값을 구하면 된다. import java.io.*; import java.util.*; public class Main { private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); private static ..
https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 백트렉킹 활용 문제이다 문제에서 제시하는 부분 수열의 의미를 잘 파악해야 된다. Arr = [1,1,1,1] S = 1 인 경우 부분 수열의 개수는 [1]을 갖고 있는 4개가 된다. 처음에 visit 배열로 중복성 확인을 해가며 풀었는데 구지 그럴 필요가 없었던 문제였다. import java.io.*; import java.util.*; public class..
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 큐를 이용하여 주어진 조건대로 구현하면 된다 예제 이해가 힘들었는데 간략하게 설명하자면 예제 6 0 1 1 9 1 1 1 문서의 개수는 6개이고 0번쨰에 있는 문서가 언제 출력 알려달라는 것이였다. 여기서 0번째란 1 1 9 1 1 1 이므로 돌려보면 1 9 1 1 1 1 9 1 1 1 1 1 (출력) 1 1 1 1 1 (출력) 1 1 1 1 (출력) 1 1 1 (출력) 1 1 (출력) 5번째 출력이..
https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 비트마스킹을 활용한 문제이다. 문제의 입력 수가 3,000,000 이기에 System.out.println 함수를 사용 할 경우 시간 초과가 날 수 있다. StringBuilder 를 활용하면 된다! import java.io.*; import java.util.*; public class Main { public static final BufferedReader br = new BufferedReader(new InputStrea..