본문 바로가기

Problem Solving/Baekjoon1331

[백준] 1904 01타일 - Dynamic Programming / Java • 문제 링크 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net • 풀이 과정 크기가 n 인 타일링의 가짓수를 구해보면, n = 1 (1) 1개 n = 2 (00), (11) 2개 n = 3 (001), (100), (111) 3개 n = 4 (0011), (1100), (1001), (0000), (1111) 5개 n = 5 (00001), (10000), (00100), (00111), (11100), (10011), (11001), (11111) 8개 위와 같이 가짓수의 증가폭이 1, 2, 3, 5, 8 로 피.. 2022. 11. 7.
[백준] 9184 신나는 함수 실행 - Dynamic Programming / Java • 문제 링크 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net • 풀이 과정 문제에 제시된 함수를 구현한 후, 메모이제이션을 할 3차원 dp 배열을 생성하며 크기는 함수의 조건상 21 로 지정한다. 미리 계산한 값을 dp 배열에 저장 및 반환하여 실행 시간을 단축시키며 각각의 테스트 케이스의 정답을 출력한다. • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.In.. 2022. 11. 6.
[백준] 5430 AC - Data Structure / Java • 문제 링크 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net • 풀이 과정 입력받은 테스트 케이스 수 t 만큼 함수 p 와 배열의 크기 n 을 입력받고 해당 배열의 정수를 StringTokenizer 구분자를 "[]," 로 지정하여 입력받아 Deque 에 offer 한다. 함수 R 을 수행 할 시, boolean 변수 reverse 의 논리값을 변환하며, reverse = true 일 경우 덱에서 removeLast 를 통해 덱의 뒤에서부터 원소를 추출하며 그렇지 않을 경우 removeFirst 로 덱의 앞에서 부터 원소를 추출한다. 만약 추출 시 덱에 원소가 남.. 2022. 11. 5.
[백준] 1021 회전하는 큐 - Data Structure / Java • 문제 링크 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net • 풀이 과정 Deque 자료구조를 활용하여 회전하는 큐를 구현한다. 큐의 크기 n을 입력받은 후 덱에 1 ~ n 의 범위의 정수를 offer 하고, 뽑아낼 원소 m개를 차례로 입력받는다. 향상된 for 문을 활용하여 추출할 원소의 인덱스를 구하고, 해당 인덱스가 0 일 경우 pollFirst 하여 덱의 첫번째 원소를 추출하며 그렇지 않을 경우 해당 인덱스가 덱의 중앙(dq.size() / 2) 에서 어느쪽에 가까운 지 판별하여 가까운 방향으로.. 2022. 11. 4.
[백준] 15828 Router - Data Structure / Java • 문제 링크 15828번: Router 인터넷을 사용하기 위해서는 컴퓨터에 인터넷 회선을 연결하거나 Wi-Fi를 연결해야 한다. 이렇게 연결된 네트워크를 통해 컴퓨터에는 통신이 가능하다. 마음에 드는 노래나 동영상이 있는 곳에 www.acmicpc.net • 풀이 과정 라우터를 Queue 로 구현하고, 해당 큐에 저장할 수 있는 데이터의 수 n 을 입력받는다. -1 을 입력받을 때까지 패킷의 정보를 입력받으며 입력받은 값이 0일 때 큐를 poll 하여 가장 먼저 들어온 값을 처리한다. 그외의 값은 만약 큐의 크기가 n, 즉 라우터의 버퍼보다 작을 경우 여유 공간이 있으므로 해당 값을 offer, 큐의 크기가 n 보다 같거나 클 경우 더 이상 추가로 값을 수용 불가하므로 해당 값을 무시한다. 이러한 과정.. 2022. 11. 3.
[백준] 4949 균형잡힌 세상 - Data Structure / Java • 문제 링크 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net • 풀이 과정 하나 또는 여러 줄의 입력된 문자열이 "." 일 때까지 문자열을 입력받는다. 미리 생성한 제네릭이 Character 인 Stack 에 각 문자열 처리 완료시마다 clear 하여 비운다. 각각의 문자열을 토큰 단위로 쪼개어 토큰이 여는 괄호일 시 ('(' || '[') 스택에 push 하고, 닫는 괄호일 시 (')' || ']') 스택이 비어있지 않고, peek 으로 확인한 스택 상단의 값이 토큰과 짝이 맞는 여는.. 2022. 11. 2.