Deep_Dev
[백준][JAVA]10828번 : 스택

문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보..

article thumbnail
섹션4. HashMap, TreeSet ( 해쉬, 정렬지원 Set )
📚 코딩테스트/Inflearn 2022. 9. 28. 16:12

학급 회장 아나그램(HashMap) 매출액의 종류(Hash, sliding window) 모든 아나그램 찾기 ( Hash, sliding window : 시간복잡도 O(n)) K번째 큰 수 1. 학급회장 import java.util.*; public class Main { public char solution(int n,String str){ char answer=' '; HashMap map=new HashMap(); for(char x:str.toCharArray()){ map.put(x,map.getOrDefault(x,0)+1); } int max=Integer.MIN_VALUE; for(char key:map.keySet()){ if(map.get(key)>max){ max=map.get(ke..

article thumbnail
섹션 3. Two points, Sliding window[효율성 : O(n^2)-->O(n)]
📚 코딩테스트/Inflearn 2022. 9. 16. 18:35

1. 두 배열 합치기 ( two pointers algorithm ) 2. 공통원소구하기( two points algorithm ) 3. 최대 매출( Sliding window ) 4. 연속부분수열 ( 복합적 문제 ) 5.1 연속된 자연수의 합 ( two pointers ) 5.2 연속된 자연수의 합 ( 수학 ) 6. 최대 길이 연속부분수열 ( 복합적 문제 ) 1. 두 배열 합치기 ( two pointers algorithm ) import java.util.*; public class Main { public ArrayList solution(int n, int m, int[] a, int[] b){ ArrayList answer=new ArrayList(); int p1=0, p2=0; while(p1

article thumbnail
섹션1. String(문자열)
📚 코딩테스트/Inflearn 2022. 8. 29. 14:41

1. 문자찾기 import java.util.Scanner; public class Main { public int solution(String str, char t){ int answer=0; str=str.toUpperCase(); t=Character.toUpperCase(t); for(int i=0; im){ // 최댓값 알고리즘 m=len; answer=x; } } return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); String str = kb.nextLine(); System.out.print(T.solution(str); } } 4. 단어 ..

article thumbnail
섹션2. Array( 1,2차원 배열 )
📚 코딩테스트/Inflearn 2022. 8. 29. 14:01

2.1 큰 수 출력하기 solution import java.util.*; class Main { public ArrayList solution(int n, int[] arr){ ArrayList answer = new ArrayList(); answer.add(arr[0]); for(int i=1; iarr[i-1]) answer.add(arr[i]); } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[] arr = new int[n]; for(int i=0; i