분류 전체보기
-
백준 2609,1934 - 최대공약수와 최소공배수,최소공배수자료구조와 알고리즘/문제풀기 2023. 4. 10. 18:36
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수 출력하는 것 2609 최대공약수 최소공배수 public class Main{ public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String[] input =br.readLine().split(" "); int a = Integer.parseInt(input[0]); int b = Integer.parseInt((input[1])); in..
-
백준 10430 - 나머지자료구조와 알고리즘/문제풀기 2023. 4. 10. 15:34
public class Main{ public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String[] input =br.readLine().split(" "); int[] arr = new int[input.length]; for(int i=0; i +m한번 해주면 양수로만 나옴 *C(JAVA)와 python 나머지 구하는 방식 차이 c와 java는 나머지를 버림, python은 내림을 이..
-
스택과 문제들 풀면서 얻은..자료구조와 알고리즘/알고리즘 2023. 4. 5. 14:07
스택과 관련 문제들을 풀어보았다. 문제를 풀면서 얻은 점들 한눈에 볼 수 있도록 정리하려고 작성했다. 스택은 LIFO구조. 저장된 데이터의 마지막 값이 의미있는 경우에 사용하면 편하다! -얻은점 >테스트케이스 주어질때는 바로 입출력하는 방식이 좋다. --단어 뒤집기 1,2 ★--- >문자열 다룰 때 자바 eof (입력,파일 스트림으로부터 모두 읽기) while((input=readLine()) !=null) while((input=read()) !=-1) while(scanner.hasNext()) > 문자열을 중심으로 입력을 받고 char[]로 변환해서 사용하는 것이 훨씬 편한듯하다. read() --쪼끔구리다 readLine() 개행무시 - char[] 다룰때 필요하다면 미리 추가해두자. > 스택에 ..
-
백준 10799 - 쇠막대기자료구조와 알고리즘/문제풀기 2023. 4. 5. 13:43
올바른 괄호문제를 응용한 문제이다. 해결방법 - (하나당 쇠막대기 1개로 간주 스택에 push() - )닫는괄호 등장시 - 바로 인접한 여는 괄호 존재시 -->레이저로 간주 총 길이에 스택의 사이즈(총 쇠막대기)만큼 + (2등분 되므로 기존 쇠막대기 만큼 +됨) - 인접한 여는 괄호가 없을 시 -->쇠막대기 끝을 의미 쇠막대기 하나 없어짐 -->>바로 인접한 여는괄호인지 아닌지를 판단하는게 중요하다. 풀이 1 public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWri..
-
백준 17413 - 단어뒤집기2자료구조와 알고리즘/문제풀기 2023. 4. 5. 13:20
원래 단어 뒤집는 문제에서 일때는 그대로 출력하는 것이 추가된 것 뿐이다. public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String input = br.readLine()+'\n'; Stack ss = new Stack(); Stack ss2 = new Stack(); boolean flag = false; //괄호가 시작된건지 아닌지 확인 for(char a: input.toCha..
-
백준 10845 - 큐 구현자료구조와 알고리즘/문제풀기 2023. 4. 5. 11:38
배열로 큐를 구현하는 문제이다. -큐는 FIFO구조이다. 스택과 반대로 순서를 의미할 때 사용한다. =arr.length) ensure(); arr[end++] = n; } //fifo public int pop(){ if(empty() ==1 || size() ==0)return -1; int rval = arr[begin]; arr[begin++]=0; return rval; } //end - begin public int size(){ return end-begin; } public int empty(){ if(size()==0) return 1; return 0; } //맨 앞 public int front(){ if(empty()==1||size()==0)return -1; return arr[..
-
백준 1406 - 에디터자료구조와 알고리즘/문제풀기 2023. 4. 5. 11:29
해결방법 - 첫 줄을 입력받아 데이터를 저장한다. - 각 상황에 맞게 명령을 구현한다. -스택을 사용하면, 스택 두개를 두고 - L - 왼쪽 스택에서 글자하나 pop()해서 오른쪽 스택에 넣기 - D - 오른쪽 스택에서 글자하나 pop()해서 왼쪽 스택에 넣기 - B - 왼쪽스택에 글자하나 pop()하기 - P - 왼쪽 스택에 글자하나 push()하기 - 왼쪽스택에 있는 문자 전부 pop해서 오른쪽에 넣고 오른쪽 스택 문자 하나씩 pop출력 -> abcy (왼) x(오) -->왼에서 오로 pop xycba ->이거 다시 pop하면 abcdyx (뒤집은걸 다시 뒤집은 것 뿐) -> 왼쪽에 몰아넣고 배열을 만들어서 배열 마지막 인덱스부터 pop()으로 넣어 만들어도 됨 public static void ma..