전체 글 127

[백준] 자바 Java, 1712번: 기본 수학 > 손익분기점

1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 문제 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대..

[백준] 자바 Java, 13305번: 그리디 알고리즘 > 주유소

13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 이용하..

[백준] 자바 Java, 11399번: 그리디 알고리즘 > ATM

11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다..

[백준] 자바 Java, 1931번: 그리디 알고리즘 > 회의실 배정

1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보..

[알고리즘] 유클리드 호제법 Euclidean Algorithm

유클리드 호제법/유클리드 알고리즘(Euclidean Algorithm) 2개의 자연수의 최대공약수(GCD, Greatest Common Divisor)를 구하는 알고리즘 2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같음 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수 시간복잡도 O(logN) 기존의 하나씩 나누어서 구하는 방식으로 최대공약수를 구하게 될 경우 시간복잡도 O(N) 예시) 78696과 19332의 최대공약수 78696 = 19332×4 + 1368 19332 = 1368×14 + 18..

CS/Algorithm 2021.09.20

[백준] 자바 Java, 1934번: 정수론 및 조합론 > 최소공배수

1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 문제 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 둘째 줄부터 T개의 줄에 ..

[프로그래머스] 오라클 Oracle, SQL 고득점 Kit: GROUP BY 문제

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr TABLE INFO ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHA..

[스프링] Spring IoC 컨테이너, WebApplicationContext(DispatcherServlet, ContextLoaderListener), IoC 관련 @Annotation 설정

Spring IoC 컨테이너 자바 객체(빈)의 생명 주기(생성, 초기화, 서비스, 소멸) 관리 IoC의 대표적 예는 ServletContext Servlet의 생명 주기를 관리 WebApplicationContext Spring Web MVC에서 사용하는 IoC 컨테이너 ContextLoaderListener와 DispatcherServlet에서 생성할 수 있음 IoC 관련 @Annotation 설정 base-package="" : Annotation을 찾기 시작할 패키지(하위 패키지 모두 검색) use-default-filters="true" : 아래의 Annotation을 찾아 관리 빈으로 자동 생성 @Controller, @Service, @Repository, @Component 태그 관리 빈 생..

Java/Spring 2021.09.19

[스프링] 디스패처 서블릿 DispatcherServlet

디스패처 서블릿(DispatcherServlet) 서블릿 컨테이너 가장 앞단에서 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 *프론트 컨트롤러 DisparcherServlet은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야 하는 세부 컨트롤러를 getBean()으로 가져와 정해진 메소드를 실행시켜 작업 위임 *프론트 컨트롤러(Front Controller) : 주로 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리해주는 컨트롤러, MVC 구조에서 함께 사용되는 디자인 패턴 DispatcherServlet 동작 방식 장점 web.xml의 역할 축소 기존의 모든 서블릿의 URL 매핑을 web.xml에 등록했지만, dispat..

Java/Spring 2021.09.19

[스프링] 서블릿 컨텍스트 ServletContext

웹에서 사용하는 HTTP 프로토콜의 통신 방식은 클라이언트와 서버 간의 연결을 클라이언트로부터 요청이 있을 때마다 매번 새롭게 연결하는 방식이다. 요청이 있을 때마다 연결작업이 새롭게 이루어지고, 서버가 클라이언트에게 응답을 보내는 즉시 끊어진다. 이처럼 클라이언트와 서버 간에 연결상태가 유지되지 않는 통신 방식을 '무상태'라고한다. 그렇기 떄문에 HTTP 프로토콜 통신 방식은 클라이언트의 정보가 유지되지 않는다. 따라서 클라이언트의 정보를 유지하기 위해서 ServletContext을 이용한다. 이 방법은 웹 애플리케이션 단위로 정보를 유지한다. 또한, ServletContext는 상태유지 기능 이외에도 서블릿과 서블릿 컨테이너 간의 통신 기능도 제공한다. 서블릿 컨텍스트(ServletContext) 서..

Java/Spring 2021.09.19
728x90
반응형