전체 글

Programmers/Lv.1

[프로그래머스][Lv.1][Java][배열] 나누어 떨어지는 숫자 배열

문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 arrdivisorreturn [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] 1 [1, 2, 3, 36] [3,2,6] 10 [-1] 내 풀이 import java.util.ArrayList; import java.util.Arrays;..

백준

[백준 10818번][Java][배열] 최소, 최대

문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 내 풀이 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Except..

Computer Science/자료구조

[자료구조] Queue(큐) & Deque(덱)

Queue란? 선입선출 (First In First Out; FIFO) 자료구조 먼저 들어온 데이터가 먼저 나가는 구조 입력 순서대로 데이터 처리가 필요할 때 사용 BFS (Breath-First Search) Queue 기본 구조 Queue 기본 연산 Queue 생성 큐는 배열기반의 컬렉션 클래스를 사용하면 데이터를 꺼낼 때마다 빈 공간을 채우기 위해 데이터를 복사해야 하므로 LinkedList로 구현하는 것이 적합하다. import java.util.LinkedList; import java.util.Queue; Queue queue = new LinkedList(); // Queue는 interface로 구현되어 있음. 따라서 바로 객체로 만들 수 없음. -> Queue queue = new Que..

백준

[백준 1021번][Java][Deque] 회전하는 큐

문제 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 왼쪽으로 한 칸 이동시킨다. 오른쪽으로 한 칸 이동시킨다. 큐에 처음에 포함되어 있던 수 N이 주어진다. 그리고 지민이가 뽑아내려고 하는 원소의 위치가 주어진다. (이 위치는 가장 처음 큐에서의 위치이다.) 이때, 그 원소를 주어진 순서대로 뽑아내는데 드는 2번, 3번 연산의 최솟값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 ..

Programmers/Lv.1

[프로그래머스][Lv.1][Java][Stack] 같은 숫자는 싫어

문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 ..

Computer Science/자료구조

[자료구조] 스택 (Stack)

스택 (Stack) 후입선출 (Last In First Out; LIFO) 자료구조 - 마지막에 들어온 데이터가 먼저 나가는 구조 - First In Last Out (FILO) 라고 하기도 한다. 순차적으로 데이터를 추가하고 삭제하기 때문에 ArrayList와 같은 배열 기반의 클래스를 사용하는 것이 적합하다. 스택의 기본 구조 스택의 기본 연산 push(item) - 스택의 Top에 요소 저장 pop() - 스택의 가장 마지막 요소를 반환하며 삭제 - 만약 스택이 비어있을 때 pop()을 한다면 EmptyStackException 발생 peek() - 스택의 가장 마지막 요소를 반환하지만 삭제는 하지 않는다. contains(item) - 스택 안에 요소가 있는지 확인 search(item) - 스택..

백준

[백준 25556번][Java][Stack] 포스택

문제 포닉스는 길이가 N인 순열 A와 네 개의 비어 있는 스택을 가지고 있다. 길이가 N인 순열이란, 1 이상 N 이하의 서로 다른 정수 N개가 임의로 나열된 수열을 말한다. 스택이란 자료구조의 한 종류로 가장 나중에 삽입한 자료가 가장 먼저 나오는 후입선출 (Last In First Out, LIFO)의 특성을 가지고 있다. 포닉스는 PPC를 맞아 더러워진 순열을 청소하려 한다. 순열을 청소하는 것은 다음과 같은 과정을 통해 순열을 오름차순으로 정렬하는 것을 뜻한다. 즉 순열을 1, 2, 3, … N으로 만들어야 한다. 순열 A의 원소들을 앞 원소부터 순서대로 네 개의 스택 중 하나에 삽입한다. 순열 A의 모든 원소를 스택에 삽입했다면, 네 개 중 원하는 스택에서 수를 꺼내는 것을 반복하여 네 개의 스..

Programmers/Lv.0

[프로그래머스][Lv.0][Java]가위 바위 보

문제 설명 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요. 제한사항 0 < rsp의 길이 ≤ 100 rsp와 길이가 같은 문자열을 return 합니다. rsp는 숫자 0, 2, 5로 이루어져 있습니다. 입출력 예 rsp result "2" "0" "205" "052" Solution class Solution { public String solution(String rsp) { String answer = ""; String scissor = "2"; String rock = "0"; String pa..

Programmers/Lv.0

[프로그래머스][Lv.0][Java]모스부호(1)

문제 설명 머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요. 모스부호는 다음과 같습니다. morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':'u','...-..

Programmers/Lv.0

[프로그래머스][Lv.0][Java]개미 군단

문제 설명 개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요. 제한사항 1. hp는 자연수입니다. 2. 0 ≤ hp ≤ 1000 입출력 예 설명 입출력 예 #1hp가 23이므로, 장군개미 네마리와 병정개..