분류 전체보기

알고리즘

[알고리즘][백준][JAVA] 10828번 : 스택

문제 : https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 입력을 받을 때 Scanner 보다 BufferedReader를 사용하여 더 빠른 처리가 가능하게 하였다. System.out 을 이용하여 출력 할 때에는 [ 조건식 ? true : false ] 를 이용하여, 간단하게 코드를 구성하였다. import java.io.BufferedReader; import java.io.IOException; import java.io...

Spring

# 23.01.21

스프링 빈과 의존관계 1. 컴포넌트 스캔과 자동 의존관계(DI, Dependency Injection) 설정 @ Controller 라는 annotation 이 있으면, 스프링이 시작될때 객체가 생성되면서 관리대상이 됨. @ Autowired : spring 컨테이너에 있는 memberservice 를 가져다가 씀 annotationd으로 @Service, @Repository 걸어놓으면, 해당 클래스와 spring container 를 연결시켜줌. 정형화된 패턴 - controller : 컨트롤러를 통해 외부 요청을 받고, - service : 서비스에서 비즈니스 로직을 만들고, - repository : 리포지토리에서 데이터를 저장함. @Autowired를 통 의존관계를 설정하는 것이 중요. (Mem..

알고리즘

[알고리즘][백준][JAVA] 2231번 : 분해합

문제 : https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net BufferedReader 를 활용해 입력을 받았고, for 문을 통해 0부터 N 까지의 숫자를 searching 하며 문제의 조건을 만족하면 break 하는 구성으로 짜 보았다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public c..

알고리즘

[알고리즘][백준][JAVA] 10866번 : 덱

문제 : https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net Deque의 addFirst() / removeFirst() / peekFirst() 를 잘 알고 있으면, 쉬운 문제이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Deque; import java.util.Linked..

알고리즘

[알고리즘][백준][JAVA] 10845번 : 큐

문제 : https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 자바 큐 사용법을 숙지하고 있어야 하는 문제이다. 또한, 삼항 연산자 (ternary operator) 를 사용하여 풀어보았다. 삼항 연산자는 [ condition ? value1 : value2 ] 형식인데, 조건이 True이면 value1을, False이면 value2를 리턴한다. 자바에서 입력받는 방법은 Scanner 와 BufferedReader 가 있는데, 초반에..

알고리즘

[알고리즘][백준][JAVA] 9012번 : 괄호

문제 : https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택을 이용하는 대표적인 문제이다. 세 가지 경우로 나누어 생각할 수 있는데, 1. 올바르게 괄호가 구성된 경우 ( 모든 과정이 끝나고 난 후 최종 스택이 empty 인 경우) 2. 모든 과정이 끝났는데, 스택에 남은 원소가 있는 경우 3. 닫는 괄호가 스택에 들어왔는데, pop 할 원소가 없는 경우 로 나누어 코드를 짜면 된다. import java.uti..

Spring

# 2023.01.16 (스프링 입문 #2)

스프링 입문 - 회원 관리 예제 1. 비즈니스 요구사항 정리 - 데이터는 회원의 id / 이름 - 기능은 회원 등록 및 조회 - 데이터 저장소 db가 선정되지 않았을 경우를 가정. (성능이 중요한 db로 할지, 일반적인 관계형 데이터베이스로 할지, NoSQL로 할지 ,,) - 일반적인 웹 애플리케이션의 계층 구조 - 컨트롤러 Controller : 웹 MVC 에서의 컨트롤러 역할 - 서비스 Services : 도메인을 가지고 핵심 비즈니스 로직 구현 ( ex. 회원은 중복 가입이 안된다... 등등) - 리포지토리 Repository : DB에 접근, 도메인 객체를 DB에 저장하고 관리 - 도메인 Domain : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등등 db 에 저장되고 관리됨. ) - 데이..

알고리즘

[알고리즘][백준][JAVA] 2751번 : 수 정렬하기 2

문제 : https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 먼저, 해당 문제는 N개의 수를 입력받은 뒤 오름차순으로 정렬하는 문제인데, 일반적인 정렬 방법인 Arrays.sort() 를 사용하면 시간 초과가 난다. - Arrays.sort() 는 dual-pivot QuickSort 알고리즘을 사용하는데, 이는 평균 시간복잡도는 O(n logn) 이지만 worst의 경우는 O(n^2) 이기 때문에 런타임 에러가 날 수 있기 때문이다. ..

알고리즘

[알고리즘][백준][JAVA] 2292번 : 벌집

문제 : https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int N; N=sc.nextInt(); // 숫자 N을 입력받는다. int a=1; int n=1; while(n

그냥코딩
'분류 전체보기' 카테고리의 글 목록 (2 Page)