본문 바로가기

전체 글1320

[백준] 14499 주사위 굴리기 - Implementation / Java • 문제 링크 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net • 풀이 과정 주사위의 이동을 지도에 범위에 맞게 이동하도록 지정하고 주사위의 6면에 대응하는 배열을 생성해 그 움직임을 구현한다. 주사위에 각 면을 배열의 인덱스로 표현하면 다음과 같다. 1 3 0 2 4 5 이동 방향에 따라 각 주사위 면에 지정된 수가 초기값 0에서 변화하는데, 동쪽은 0, 3, 5, 2 서쪽은 0, 2, 5, 3 남쪽은 0, 4, 5, 1 북쪽은 0, 1, 5,.. 2022. 6. 23.
[백준] 16506 CPU - Implementation / Java • 문제 링크 16506번: CPU 디지털하드웨어설계 과목의 최종 프로젝트는 16-bit CPU를 설계하고 Verilog 언어로 구현하는 것이다. 본인이 구현한 CPU가 제대로 동작하는지 테스트하기 위해서는 기계어 코드를 입력으로 주어야 www.acmicpc.net • 풀이 과정 뒷자리에 C가 붙는 경우를 제외한 각각의 opcode는 0 ~ 11까지의 이진수의 값을 갖는다. 각 코드를 배열에 저장하고 각각의 인덱스에 대응하는 십진수를 이진수로 변환할 함수를 생성한다. 변환하고자 하는 값을 2로 연속해서 나눈 나머지 값을 순차적으로 나열 후 해당 문자열을 뒤집어 변환하며 이 함수를 활용해 나머지 각각의 값과 자릿수를 매개변수로 넣어 3~4 자리 이진수 값이 반환되고, 이를 주어진 조건에 맞게 결합한 전체 .. 2022. 6. 22.
[백준] 14500 테트로미노 - Implementation / Java • 문제 링크 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net • 풀이 과정 문제에 제시된 5가지의 테트로미노 중 'ㅜ' 를 제외한 나머지 테트로미노들은 일반적인 dfs로 완전탐색하여 구현 가능하나, ㅜ의 경우 위와 같이 탐색의 깊이가 2인 칸, 즉 테트로미노가 두 방향으로 분기되는 칸에서 분기를 준다. 3번째 탐색 위치를 현재 위치에서 재탐색하여 해당 테트로미노를 구현한다. 이렇게 모든 테트로미노가 놓인 칸에 쓰인 수들의 합의 최댓값이 max 변수에 갱신되어 정답이 출력된다. • 풀이 코드 import jav.. 2022. 6. 21.
[백준] 1966 프린터 큐 - Data Structure / Java • 문제 링크 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.LinkedList; import java.util.Queue; import java.util.StringTok.. 2022. 6. 20.
[백준] 17413 단어 뒤집기 2 - Data Structure / Java • 문제 링크 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; public class Main { public static vo.. 2022. 6. 19.
[백준] 9093 단어 뒤집기 - Data Structure / Java • 문제 링크 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; public class Main { public static void main(Strin.. 2022. 6. 18.