문제 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대를 만들려고 한다. 막대를 자르는 가장 쉬운 방법은 절반으로 자르는 것이다. 지민이는 아래와 같은 과정을 거쳐서 막대를 자르려고 한다. 지민이가 가지고 있는 막대의 길이를 모두 더한다. 처음에는 64cm 막대 하나만 가지고 있다. 이때, 합이 X보다 크다면, 아래와 같은 과정을 반복한다. 가지고 있는 막대 중 길이가 가장 짧은 것을 절반으로 자른다. 만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다면, 위에서 자른 막대의 절반 중 하나를 버린다. 이제, ..
문제 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되므로 이친수가 아니다. N(1 ≤ N ≤ 90)이 주어졌을 때, N자리 이친수의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. 출력 첫째 줄에 N자리 이친수의 개수를 출력한다. 열심히 dp를 사용해서 풀었고 시간 초과가 떴다...
문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 누적합을 사용하면 된다. 먼저 주어진 숫자로 누적합을 먼저 만든 뒤 누적합배열[j] - 누적합배열[i]를 해주면 i~j 구간의 합이 나온다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; im..
정적 컨텐츠 클라이언트의 요청을 받고 서버에 미리 저장된 HTML, CSS, JS 등의 파일을 그대로 보여준다. 스프링부트 서버는 요청이 들어오면 (1)controller 다음으로 (2)resources를 찾는다. MVC와 템플릿 엔진 웹브라우저에서 요청이 들어올 경우 Controller에서 지정된 응답을 한다. 요청에 해당되는 파일을 'viewResolver'를 통해 동작시킨다. 템플릿 엔진은 API 방식과다르게 html 파일을 직접 응답하는 방식이다. 이때 thymeleaf는 템플릿 엔진 중 하나로, MVC중 View에 해당되는 기술이다. 페이지에 동적을 값을 추가하거나 처리한다. API html파일이 아닌 데이터(json)로 응답한다. 아래와 같이 'return 객체'의 형식의 경우 객체를 json..
문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. import java.io.BufferedReader; import java.io.IOExceptio..
문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 7) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 아래와 같이 중복 순열을 구현하였다. 그런데 시간 초과가 뜬다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java...
인터셉터란? Spring이 제공하는 기술로 디스패처 서블릿이 컨트롤러를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 기능 제공 메소드 preHandle() : 컨트롤러가 호출되기 전에 실행 postHandle() : 컨트롤러 호출 후에 실행 afterCompletion() : 모든 작업이 완료된 후에 실행 ChannelInterceptor Interface for interceptors that are able to view and/or modify the Messages being sent-to and/or received-from a MessageChannel. 메세지 채널로부터 전송되거나 수신된 메세지를 볼 수 있고 또는 수정할 수 있는 인터셉터를 위한 인터페이스 일반적으로 전송 및..
https://www.acmicpc.net/problem/1002 A(조규현), B(백승환), C(류재명)일 때, A의 좌표 그리고 A와 C의 거리 B의 좌표 그리고 B와 C의 거리 가 주어진다. 이때 C의 좌표가 될 수 있는 가짓수를 구하면 된다. 굉장히 수학적인 느낌이라 알고리즘을 봤는데 수학, 기하학이 써있다. 수학 천재 친구에게 물었더니 '원' 키워드를 알려주었다. A-C의 거리, B-C의 거리를 원의 반지름으로 생각하고 A, B를 원으로 생각했을 때, C는 두 원의 접점이다. 그리고 접점의 개수는 0, 1, 2, 무한대 중에 하나이다. r1 > r2라고 가정하겠다. 무한대 d == 0 && r1 == r2 만나지 않는 경우(0) r1 + r2 < d || d < r1 - r2 한 점에서 만나는 ..
- Total
- Today
- Yesterday
- 컴퓨터학과
- RDD
- 스파크
- 컴과
- 웹
- 생활코딩
- 코틀린
- 스프링부터
- 컴공
- 프로그래밍
- 자바 1004번
- 13305 자바
- 자바
- 인프런 김영한 강의
- 스프링부트
- 백준9375번
- 그리디 알고리즘
- 백준 2108
- 코딩
- 개발
- 백준
- 자바 9375
- 아이엘츠
- 알고리즘
- 안드로이드
- 동덕여대 컴퓨터학과
- BFS
- 스프링 강의
- 백준 1004
- 동덕여대
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |