no image
[Algorithm] 팰린드롬 수 - (백준 1259)
문제어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.입력입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.출력각 줄마다 주어진 수가 팰..
2024.12.26
no image
[Algorithm] 피보나치 수열 (반복문, DFS)
피보나치 수열을 구현하는데 두가지정도의 알고리즘이 대표적으로 존재한다.반복문 + 배열로 구현먼저, 대표적으로 배열 + 반복문으로 구현하는 방법은 아래와 같다.package Array;import java.util.*;public class Fibonacci { public static int[] fib(int n) { int[] arr = new int[n]; for (int i = 0; i 배열의 인덱스가 0이나 1일 때는 원소의 값을 1로 집어 넣는 복잡도가 O(1)이고, 인덱스가 0 또는 1이 아닐 때 원소값을 삽입하는 복잡도는 대략 O(n) 정도이다. 즉 배열과 반복문으로 풀면 복잡도는 O(n) 정도이다. DFS 로 구현기본적으로 DFS는 메서드를 재귀적으로 호출한다..
2024.12.25
no image
[Algorithm] 올바른 괄호 (Java) - Stack 보단 Deque
설명괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다.(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.입력첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다.출력첫 번째 줄에 YES, NO를 출력한다.예시 입력 1 (()(()))(()예시 출력 1NOStack 자료구조를 이용하는 문제는 맞지만, 현재 Stack 클래스는 사용하지 않는다고 배웠다.스택은 자바 1버전에서 사용하던 Vector 를 상속받은 클래스라는데.. 이제는 하위 버전 호환용으로만 존재할 뿐 사용하지 않기 때문에 Deque 로 풀었다.Deque는 스택의 push(), pop() 메서드와 Queue의 offer(), poll() 메서드 모두 ..
2024.12.24
no image
[Java] [이코테] 1이 될 때까지
1이 될때까지어떠한 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다.N에서 1을 뺀다.N을 K로 나눈다.예를 들어 N이 17, K가 4라고 가정하자. 이때 1번의 과정을 한 번 수행하면 N은 16이 된다. 이후에 2번의 과정을 두 번 수행하면 N은 1이 된다. 결과적으로 이 경우 전체 과정을 실행한 횟수는 3이 된다. 이는 N을 1로 만드는 최소 횟수이다.N과 K가 주어질 때 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오.[입력 조건]첫째 줄에 N(2≤ N ≤ 100,000)과 K(2≤ K ≤ 100,000)가 공백으로 구분되며 각각 자연수로 주..
2024.09.19
no image
[Java] [프로그래머스] 햄버거 만들기
코테를 풀면서 항상 느끼는거지만, 제목이 쉬워보이는 문제는 막상 들어가면 머리가 아픈 것 같다ㅋㅋ아무튼 오늘은 햄버거 만들기를 풀어봤는데, 문제는 아래와 같다문제 설명햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습..
2024.09.12
no image
[Algorithm] [백준] 항상 문제를 잘 읽어라(11382번)
예전에 문제를 풀다가 생각난게 좀 있어서.. 같은 실수를 반복하지 않고자 이렇게 짧게 글을 써본다!백준 코테를 처음에 준비하면서 단계별로 풀어보는데, 나처럼 코테를 처음 시작하면서 다들 거쳐갔던 문제가 있을 것이다.11382번 꼬마 정민 문제인데,일단 그냥 누구나 보면 스캐너 객체로 정수 입력 3개만 받으면 되겠구나! 싶었던 문제이다.이것이 내가 처음 적었던 코드인데, 당연히 쉽게 맞추고 넘어가겠거니 하고 컴파일을 누르는  순간,현타가 왔다 " 대관절 어디서 틀린거지..? "아무리 봐도, 두번 돌려봐도, 세번 돌려봐도 코드엔 전혀 문제가 없다. 나는 이 처음 시작하는 시절에 너무 당황하고 답은 보기 싫고 짜증나서 아 이거 백준 사이트가 틀린거 아닌가?(지금 생각하면 진짜 개 헛소리ㅋㅋ) 라는 생각이 들 ..
2024.07.27