전체 글
-
Java 10799 쇠막대기PS 2023. 5. 4. 14:40
풀이 : 스택을 사용해 '('가 나오면 우선 푸쉬, ')'가 나오면 이전 값이 '('인지를 체크하여 result에 값을 더 해주었습니다. 쇠막대기 하나를 레이저 두개로 자른다면 쇠막대기는 1 + 2, 총 3개가 됩니다. 쇠막대기를 뜻하는 '('가 입력되고 쇠막대기의 끝을 뜻하는 ')'가 입력될 때까지 쇠막대기는 이어지고 있으니 이전 값이 '('인 ')', 즉 레이저가 입력되면 size를 result에 더해줍니다. 그리고 쇠막대기의 끝을 알리는 ')'가 입력된다면 result에 1을 더 해줌으로써 값을 구할 수 있었습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import jav..
-
Java 10870 피보나치 수 5PS 2023. 5. 4. 00:17
풀이 : 피보나치의 개념만 알고 있다면 반복문, 재귀 둘 중 골라 풀이할 수 있는 문제였고 저는 재귀를 사용하여 풀었습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); System.out.println(fibo(n)); } static in..
-
Java 10866 덱PS 2023. 5. 4. 00:10
풀이 : 고정된 크기의 int형 배열을 생성한 뒤 index를 가운데에서 설정하고 생성해주었습니다. 이전에 풀었던 스택 구현 문제와 기능만 더 구현하면 되는 문제라 쉽게 풀 수 있었던 문제였습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static class CustomDeque { private int[] deque; private int front; private int rear; private int size; public CustomDeque(){ this.deque = n..
-
Java 9095 1, 2, 3 더하기PS 2023. 5. 4. 00:07
풀이 : 우선 해당문제의 설명부분에서 4의 경우의 수는 총 7가지가 되는 것을 보여주는 거처럼, n의 경우의 수는 (n-1) + (n-2) + (n-3)으로 구할 수 있습니다. 그래서 int형 배열을 생성해주고 n은 11보다 작으니 10까지의 경우의 수를 배열에 저장해준 뒤 입력 받은 값을 출력하는 되는 문제입니다. 이렇게 반복된 연산을 효율적으로 풀어주는 것을 동적 프로그래밍, 다이나믹 프로그래밍 다른 말로는 기억하기 프로그래밍이라고도 합니다. 앞으로는 자료구조와 동적 프로그래밍 문제를 많이 풀어볼 예정입니다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Ma..
-
OpenAPI 데이터베이스 저장Java 2023. 5. 2. 16:54
나이스 대국민 서비스 openAPI에서 제공하는 학원, 교습소 정보를 로컬 pc에 있는 mariadb에 저장하는 데에는 크게 나눠보면 1. API를 호출할 것인지, 데이터베이스에 저장 후 사용할 것인지 본인은 학교 프로젝트로 오픈 API를 활용한 서비스를 만들고 싶었기에 아무래도 매번 API를 호출하는 것 보단 데이터베이스에 저장하여 사용하는 게 좋을 것 같다고 판단되어서 나이스 대국민서비스에서 csv파일을 다운로드 받았습니다. 2. csv파일을 읽고 파싱하여 vo객체로 저장하는 과정 BufferedReader로 FileReader(csv파일경로)를 읽습니다. csv 파일은 컬럼을 기준으로 ',' 로 구분되기에 String의 split메서드를 사용해 ','로 구분지어 데이터를 읽고 원하는 부분만 파싱하..
-
Java 10773 제로PS 2023. 5. 2. 13:46
풀이 : 스택을 사용해서 정수가 0이 아니라면 push, 0이라면 pop을 하는 조건식만 달아주면 해결할 수 있는 간단한 문제였습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); Stack sta..
-
Java 2164 카드2PS 2023. 5. 2. 13:30
풀이 : 큐를 사용해 큐의 사이즈가 1이 될 때까지, 즉 마지막 카드가 남을 때까지 한장을 poll해서 버리고 다음 한장은 poll한 것을 offer을 하면 쉽게 풀 수 있는 문제였습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Syste..