성장일기

내가 보려고 정리하는 공부기록

골드4 15

[백준] 14500: 테트로미노 (DFS, dydx) - JAVA

class3++ https://www.acmicpc.net/problem/14500   # 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다.정사각형은 서로 겹치면 안 된다.도형은 모두 연결되어 있어야 한다.정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다.정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다.아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다.테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오.테..

[백준] 7662: 이중 우선순위 큐 (PriorityQueue) - JAVA

class 3++ https://www.acmicpc.net/problem/7662   # 문제이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다. 데이터를 삭제하는 연산은 또 두 가지로 구분되는데 하나는 우선순위가 가장 높은 것을 삭제하기 위한 것이고 다른 하나는 우선순위가 가장 낮은 것을 삭제하기 위한 것이다.정수만 저장하는 이중 우선순..

[백준] 1806: 부분합 (누적합, 투포인터) - JAVA

알고리즘 분류 - 두 포인터https://www.acmicpc.net/problem/1806   # 문제10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. # 예제입력 :  첫째 줄에 N (10 ≤ N 10 155 1 3 5 10 7 4 9 2 8  출력 :  첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다.2 # 필요개념이 문제에서 신경써야 할 조건은 두 가지였다.합이 S 이상이어야 한다수열의 길이가 가장 짧아야 한다그래서 나는 누적합을 구하기로 했다. 만약 여지껏 수열의 합이 S보다 작다면, 계속..

[백준] 9663: N-Queen (백트래킹) - JAVA

https://www.acmicpc.net/problem/9663  # 문제N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. # 예제입력 :  첫째 줄에 N이 주어진다. (1 ≤ N 8 출력 :  첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다.92 # 필요개념우선 어떤 경우에 퀸이 공격을 할 수 있게 되는지 알고있어야 한다. 퀸은 다음과 같은 조건에서 공격할 수 있다.같은 열에 있는 경우같은 대각선상에 있는 경우즉, 문제가 원하는 것은 같은 열에 있지 않고, 동시에 같은 대각선상에 있지 않는 경우의 수를 출력하라는 뜻이다.  이를 파악하기 위해서는 퀸이 놓인 ..

[백준] 5052 : 전화번호 목록 (startsWith 메소드) - JAVA

백준 알고리즘 분류 (정렬)https://www.acmicpc.net/problem/5052 # 문제전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오.전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 한다.예를 들어, 전화번호 목록이 아래와 같은 경우를 생각해보자긴급전화: 911상근: 97 625 999선영: 91 12 54 26이 경우에 선영이에게 전화를 걸 수 있는 방법이 없다. 전화기를 들고 선영이 번호의 처음 세 자리를 누르는 순간 바로 긴급전화가 걸리기 때문이다. 따라서, 이 목록은 일관성이 없는 목록이다. # 예제입력 : 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 ..

728x90