Java/백준 (106) 썸네일형 리스트형 [JAVA] 백준 12789 도키도키 간식드리미 12789번: 도키도키 간식드리미 (acmicpc.net) 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net 풀이 과정 더보기 처음에는 스택으로만 접근하다가 안풀려서 구글링 해보니 스택과 큐를 이용해서 풀이한 것을 확인함,,, - 입장 순서를 지킬 수 있는지 판단하는 문제 - Input 큐 :현재 줄 서 있는 곳 (입력 값 저장) - wait 스택 :임시 대기 공간 - order : 간식을 받을 순서 - input 배열에서 현재 order값이 나올 때까지 stack 배열로 push - 현재 order 값이 나오.. [JAVA] 백준 4949 균형잡힌 세상 4949번: 균형잡힌 세상 (acmicpc.net) 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 풀이 과정 - 9012 괄호 문제랑 비슷하게 진행 - '(' 또는 '[' 왼쪽 괄호를 만나면 스택에 푸시 - ')' 또는 ']' 오른쪽 괄호를 만났을 때 스택이 비어 있거나 짝이 맞지 않은 경우에는 false 짝이 맞으면 pop을 해줌 - 모든 검사를 마쳤을 때 스택에 남아 있는 요소가 있다면 false 정답 import java.io.BufferedReader; import java.io.. [JAVA] 백준 9012 괄호 9012번: 괄호 (acmicpc.net) 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 과정 괄호 검사 알고리즘 - 문자열에 있는 괄호를 차례대로 조사하면서 왼쪽 괄호를 만나면 stack에 push - 오른쪽 괄호를 만나면 stack의 top과 괄호의 짝이 맞는지 비교 - 짝이 맞는 경우 stack에서 pop을 수행하고 위의 조사 반복 - 짝이 맞지 않거나 stack이 비어 있는 경우 False - 문자열을 전부 검사한 후 stack이 비어있으면 True - 만약 괄호가.. [JAVA] 백준 10773 제로 10773번: 제로 (acmicpc.net) 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 풀이 과정 - for문을 사용하여 num이하일 때까지 아래 반복 - input이 0이 들어올 때는 stack.pop() - input이 0이 아닌 숫자가 들어올 때는 stack.push() - result[ ] 배열에 남은 stack의 요소를 pop하여 담고 합 구함 정답 import java.io.BufferedReader; import java.io.BufferedWriter; im.. [JAVA] 백준 28278 스택 2 https://www.acmicpc.net/problem/28278 28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 풀이 과정 - 자료구조 전공책 보면서 직접 구현하려다가 컬렉션 프레임워크 Stack 사용 Stack 사용법 import java.util.Stack; Stack stackInt = new Stack(); //int형 스택 선언 Stack stackString = new Stack(); //String형 스택 선언 stackInt.push(1); //stack에 값 1 추가 stackInt.push(2); //stack에 값.. [JAVA] 백준 18870 좌표 압축 18870번: 좌표 압축 (acmicpc.net) 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 풀이 과정 - original 배열을 sorted배열로 clone - sorted 배열을 arrays.sort로 오름차순 정렬 - sorted 배열을 value로 추가 - original 배열을 key로 하고 sorted 배열을 value로 하는 HashMap을 이용 참고 블로그 [백준] 18870번 : 좌표 압축 - JAVA [자바] (tistory.com) [.. [JAVA] 백준 10814 나이순 정렬 10814번: 나이순 정렬 (acmicpc.net) 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 풀이 과정 - String형의 2차원 배열을 생성해 나이와 이름을 입력받음 - Arrays.sort에 comparator을 재정의하여 나이순으로 오름차순 정렬 정답 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.io.BufferedWriter; import java.io.Outp.. [JAVA] 백준 1181 단어 정렬 1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 과정 - 배열을 HashSest으로 변환하여 중복을 제거 - HashSet을 다시 배열로 변환하여 중복이 제거된 배열(result[ ])로 만듬 - Arrays.sort에 Comparator를 재정의하여 문자열의 길이가 같은 경우에는 사전순으로 오름차순 정렬하고 같지 않은 경우에는 문자열 길이 순으로 오름차순 정렬 //길이 기준 오름차순 출력 Arrays.sort(result, new Compara.. 이전 1 ··· 9 10 11 12 13 14 다음