일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- jvm
- BFS
- 파이썬
- 딥러닝
- Spring Framework
- 백트래킹
- Java
- spring
- dfs
- 벤쿠버
- 시애틀
- 라인플러스
- 다이나믹프로그래밍
- 릿코드
- C/C++
- binary search
- C++
- 스프링 프레임워크
- 프로그래밍언어론
- Python
- 라인
- 모두를 위한 딥러닝
- DP
- 머신러닝
- 백준
- leetcode
- 알고리즘
- 프로그래머스
- STL
- 스타벅스
- Today
- Total
케이스윔의 개발 블로그
스프링 프로젝트는 Maven을 이용해서 프로젝트를 생성합니다. 그럼 Maven이 뭔지 간단히 알아보겠습니다. Maven이란? 자바 프로젝트의 라이브러리를 연결해주고, Build를 자동화해주는 Tool입니다. 필요한 라이브러리를 설정 파일에 명시해준다면 해당 라이브러리를 다운 받아서 사용할 수 있게 해줍니다. Maven 프로젝트를 생성하면 기본적으로 생성되는 설정 파일 pom.xml이 있고, 이 파일을 통해서 설정을 할 수 있게 됩니다.- pom.xml: POM(Project Object Model)을 설정하는 파일입니다. 프로젝트 내 빌드 옵션을 설정할 수 있습니다.- Maven 프로젝트의 폴더 구조와 pom.xml /프로젝트명 /src /main /Java : 자바로 구현한 코드가 존재합니다. /res..
Spring Framework 프레임 워크란? 개발할 때 설계 기본이 되는 뼈대나 구조/환경입니다. 개발자들이 개발을 하기위한 업무를 추상적으로 만들어 놓은 틀이기 때문에 자신이 필요한 기능만 구현해서 사용하면 됩니다. 스프링 프레임워크는 자바플랫폼을 위한 오픈소스 애플리케이션 프레임워크입니다. 자바 개발을 위한 프레임워크로 종속 객체를 생성해주고, 조립해주는 도구로써 주요기능으로 DI, AOP, MVC, JDBC를 제공합니다. 스프링의 특징크기와 부하의 측면에서 경량 컨테이너제어 역행(Inversion Of Control): 말그대로 제어 흐름 구조가 바뀐 것입니다.(원래는 main()와 같이 프로그램이 시작되는 시점에서부터 각 객체들이 프로젝트의 흐름을 결정하고 사용합니다.) 하지만 스프링 프레임워크..
Spring Framework는 자바 기반이므로 Java 설치가 필요합니다. Java설치할 때에 들어본 적 있을법한 JVM과 JRE, JDK에 대해 알아보겠습니다. JVM(Java Virtual Machine): 말 그대로 해석하면 자바 가상머신입니다. Java byte code를 OS에 맞게 해석해주는 역할을 합니다. 자바 컴파일러에서는 컴파일 시 작성한 소스코드(.java)를 bytecode로(.class) 변역합니다. 이 .class 코드를 통해서 JVM은 현재 OS에서 실행시켜줄 수 있도록 변환합니다. 한번의 컴파일을 통해 만들어진 .class 파일이 있다면 어느 OS에서도 JVM이 있다면 실행시킬 수 있습니다. 어느 기기, 어느 운영체제에서도 실행될 수 있게 하고 프로그램 메모리를 관리하고 최적..
문제1부터 N까지 마을이 있을 때 마을을 순회할 수 있는 최소비용을 구하시오.문제 출처: 백준 온라인저지(https://www.acmicpc.net/problem/2098) 풀이이 문제는 Bitmask를 사용해서 dp를 만들어 나가보려고 푼 문제입니다. 여기서는 모든 마을을 순회해야할 때 방문한 마을을 표시하기 위해 Bitmask를 사용해보았습니다. dp를 통해 문제를 풀기 위해 배열이 필요하고, Bitmask를 사용한다면 어느 마을을 방문했는지 알 수 있으므로 dp배열에서 바로 사용을 할 수 있게 됩니다. 1번 마을을 방문했다면 1이고, 2번 마을을 방문했다면 10, 3번 마을을 방문했다면 100, 세 마을을 전부 방문했다면 111로 표현할 수 있습니다. 이 때 특정한 i번째의 마을을 방문했는지 알려면..
문제N, L, R이 주어진다. N개의 건물을 왼쪽에서 보았을 때는 L개가 보이고 오른쪽에서 보았을 때 R개가 보이는 경우의 수를 구하시오.문제 출처: 백준 온라인저지(https://www.acmicpc.net/problem/1328) 풀이처음에 보자마자 너무 어렵다고 생각이 들었습니다! 그리고 아주 이상한 방법으로 많이 접근을 했습니다. 다이나믹 프로그래밍 카테고리에서 골랐기 때문에 dp로 풀어야겠다는 생각은 들었지만 점화식을 세울 수 없었습니다. 처음엔 1~N까지의 건물이 주어질 때 높이가 N인 건물을 고정시키면 왼쪽, 오른쪽으로 경우의 수를 쪼갤 수 있어서 그 방법을 통해서 시도해보려 했지만 너무 어렵고 무식한 방법이었습니다. 결국 다른 분들이 풀이한 것들을 보고 힌트를 얻어서 풀었습니다. N-1개의..
문제각 배열의 원소가 주어지고, i, j, x, y가 주어질 때 (i, j)칸에서 (x, y)칸까지의 합을 구하시오.문제 출처: 백준 온라인저지(https://www.acmicpc.net/problem/2167) 풀이처음에는 단순히 일렬로 놓여있는 배열이라 생각하고 (i, j)칸에서부터 (x, y)칸까지의 합을 구하는 줄 알았는데 그게 아니라 사각형을 그린다고 했을 때 왼쪽 위의 점이 (i, j)이고 오른쪽 아래점이 (x, y)인 것이었습니다. 어떻게하면 숫자가 크지 않다면 2중 for문을 통해서 구할 수도 있겠지만 합을 구해야하는 경우의 수가 최대 10000개가 될 수 있기 때문에 dp를 이용해야했습니다. 처음엔 전.혀 감이오지 않아서 넘겨버렸던 문제였는데 그림을 그려서 생각해보니 쉽게 생각할 수 있었..
문제로봇이 동서남북 4개의 방향 중에 하나를 선택해서 이동하는데 N번의 행동을 취한다. 같은 곳을 한 번보다 많이 이동하지 않을 때, 로봇의 이동 경로가 단순하다고 한다. 각 방향으로 이동할 확률이 주어질 때 로봇의 이동 경로가 단순할 확률을 구하는 프로그램을 작성하시오.문제 출처: 백준 온라인저지(https://www.acmicpc.net/problem/1405) 풀이같은 곳을 한 번보다 많이 이동하지 않는 이동경로 = visited 배열이 0인 곳만 방문하는 경우를 의미합니다. N은 14보다 작거나 같으므로 visited 배열을 만들기 위한 값을 생각해보면 동, 서, 남, 북쪽으로만 N번 이동할 수 있으므로 (2*N)*(2*N)의 크기가 필요합니다. 출발점은 N, N이라고 생각할 수 있습니다. 그 다..
문제개수 N이 주어지고 가능한 모든 N*(N+1)/2개의 구간의 합에 대한 부호가 주어질 때, 수열 N을 구하시오.문제 출처: 백준 온라인 저지(https://www.acmicpc.net/problem/1248) 풀이처음에 어렵다고 느껴서 헤맸던 문제입니다! N이라는 숫자가 주어지고 구간의 합의 모든 조합에 대한 +, -, 0가 주어질 때 이 모든 조건을 만족하는 수열을 구해야합니다. 처음에는 입력을 1차원 배열로 받다보니 i번째 자신에 대한 부호를 찾는 것도 몇번째에 위치하고 있는지 계산을 해야해서 복잡해졌습니다. 그래서 이 방법을 처음에 시도했다가 배열을 N*N으로 만들어서 첫째 줄에서는 N개를 사용, 두번째 줄에는 N-1개를 사용하도록 했습니다. 그렇게 하니 i번째 자리의 부호를 알기 위해서는 nu..