본문 바로가기

Algorithm64

[백준] 25501-재귀의 귀재-Java [백준] 25501-재귀의 귀재-Java ❓문제 팰린드롬이란 문자를 앞에서 읽었을 떄와 뒤에서 읽었을 때가 같은 문자열을 말한다. 예를들어. AAA, ABBA, 토마토, 스위스등이 있다. 아래의 isPalindrome 함수를 이용하여, 어떤 문자열이 팰린드롬인지 여부를 판단하려고 한다. public class Main{ public static int recursion(String s, int l, int r){ if(l >= r) return 1; else if(s.charAt(l) != s.charAt(r)) return 0; else return recursion(s, l+1, r-1); } public static int isPalindrome(String s){ return recursion(s.. 2023. 7. 9.
[백준] 27433-팩토리얼 2-Java [백준] 27433-팩토리얼 2-Java ❓문제 정수 N을 입력받아 N!을 출력하는 프로그램을 작성하시오. N의 범위 0 ≤ N ≤ 20 🖊️풀이법 재귀함수의 기본학습에서 배울 수 있는 팩토리얼 문제이다. 푸는 방법은 두가지이다. 재귀함수 이용 반복문 이용 재귀 함수 정답 코드 우선 재귀함수는 자기자신을 호출 하는 함수이다. 예를 들어 10!는 아래와 같이 나타낼 수 있다. 10 * factorial ( 9 ) 10 * 9 * factorial ( 8 ) 10 * 9 * 8 * factorial ( 7 ) 10 * 9 * 8 * 7 * factorial ( 6 ) 10 * 9 * 8 * 7 * 6 * factorial ( 5 ) 10 * 9 * 8 * 7 * 6 * 5 * factorial ( 4 ) 1.. 2023. 7. 9.
[백준] 5430-AC-Java [백준] 5430-AC-Java ❓문제 AC라는 언어에는 R,D라는 두가지 함수가 있다. R은 배열에 있는 원소를 뒤집는 함수이다. D는 배열의 첫 번째 원소를 버리는 함수이다. 예를들어 “RDD”는 배열을 뒤집은 다음 처음 두 수를 버리는 함수이다. 아래의 입력 값이 주어질 때, 최종 결과를 구하는 프로그램을 작성하라. 만약 테스트케이스에 대해서 에러가 발생한 경우에는 error를 출력한다. 조건 0 ≤ n ≤ 100,000 1 ≤ ex ≤ 100 1 ≤ p ≤ 100,000 입력값 T -> 테스트 케이스의 개수 p -> 수행할 함수 n -> 배열의 원소개수 [ex1,ex2,ex3] ->배열의 원소 예제 //입력 예시 4 RDD 4 [1,2,3,4] DD 1 [42] RRD 6 [1,1,2,3,5,8].. 2023. 7. 9.
[백준] 1021-회전하는 큐-Java [백준] 1021-회전하는 큐-Java ❓문제 회전하는 양방향 순환 큐가 있다. 해당하는 큐에서는 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. ex) {1,2,3,4} -> {2,3,4} 왼쪽으로 한 칸 이동시킨다. ex) {1,2,3,4} -> {2,3,4,1} 오른쪽으로 한 칸 이동시킨다. ex) {1,2,3,4} -> {4,1,2,3} 첫째줄 입력값으로는 N, 뽑아내려는 수의 개수 M이 주어진다. 큐는 1~N까지의 수로 구성되어 있다. 둘째줄 입력값으로는 뽑아내야하는 원소가 M개만큼 순서대로 주어진다. 뽑아내려는 원소를 순서대로 뽑아내는데 드는 2번,3번 연산의 최솟값을 출력하라. 🖊️풀이법 이번 문제는 회전하는 큐지만, 양방향으로 원소를 넣고 빼야하기때문에 덱의 성질을 .. 2023. 7. 9.
[백준] 10866-덱-Java [백준] 10866-덱-Java ❓문제 주어진 명령의 수 N과 N개 만큼의 명령을 입력받아 명령의 조건대로 출력하면 된다. 1 ≤ N ≤ 10,000 1 ≤ 명령문의 정수 ≤ 100,000 명령 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는 정수의 개수를 출력한다. empty: 덱이 비어있으면 1을, 아니면 0을 출력한다. fro.. 2023. 7. 9.
[백준] 1966-프린터 큐-Java [백준] 1966-프린터 큐-Java ❓문제 첫째줄에 Test 케이스의 숫자가 주어진다. 둘째줄에 N M 형식으로 N은 문서의 갯수, M은 문서가 놓여진 위치가 주어진다. N개만큼의 문서가 중요도를 타나내는 정수가 차례대로 나타난다. 입력받은 숫자를 바탕으로 M이 나타내는 문서가 몇번째로 인쇄되는지 출력하라 입력 3 1 0 5 4 2 1 2 3 4 6 0 1 1 9 1 1 1 출력 1 2 5 🖊️풀이법 이번 문제는 간단하게 느껴지면서도, 3중 반복문이 사용되어서 헷갈리는 부분이 많았다. 하지만, 하나하나 차근차근 주어진 사항을 설정하여 풀면 풀 수 있다. 다음 코드의 주석으로 풀이법을 설명하여 확인해보자. 정답 코드 import java.util.*; import java.io.*; public clas.. 2023. 7. 9.