분류 전체보기

    [BJ] 백준 20058 마법사 상어와 파이어스톰 (JAVA)

    [BJ] 백준 20058 마법사 상어와 파이어스톰 (JAVA)

    문제 https://www.acmicpc.net/problem/20058 풀이 방법 풀이 순서를 차분하게 정하고 코드로 구현만 한다면 생각보다 간단한 문제였다. 1. 우선 처음에 해야하는건 부분 격자로 나누고, 그 안에 있는 요소를 시계방향으로 회전 시켜준다. 2. 주변에 얼음이 없는 칸을 찾고, 만약 얼음이 없는 칸이 3개 미만이면 해당 위치의 얼음의 개수를 -1 해준다. 여기서 주의해야할 점이 얼음의 개수를 바로바로 업데이트해주면 안된다. 1 2 4 1 3 4 3 4 5 이런 형태에서 얼음을 제거할때 만약 얼음의 개수를 바로바로 적용을 시켜준다면 결과가 원하는대로 나오지 않는다. 만약 바로 적용시켜준다면 0 2 3 0 3 4 2 4 4 이런 형태가 될텐데 이렇게 하면 제대로 정답이 나오지 않고, 제대..

    [SSAFY] 싸피 SSAFY 7기 1학기 종강 및 후기

    [SSAFY] 싸피 SSAFY 7기 1학기 종강 및 후기

    드디어 싸피 1학기 끝이 났다. 6개월이라는 시간이 매우 길고도 짧게 느껴지던 시간이였다. 약 일주일간의 1학기 최종 프로젝트를 마치고 종각식을 오늘 진행하였다. 사실 한달 정도 글을 못올렸는데 한달전에 입원을 해서 2주는 거의 개발이나 공부를 제대로 하지 못했다.... 진짜 예상치도 못한 입원이였기 때문에 생활하는데 너무나도 큰 변화가 생겼고, 아직도 회복중이다. 이제 후기와 관통 프로젝트에 대해서 작성해보려고 한다. 4월 4월에는 거의 알고리즘 + 백엔드 수업 위주였다. 그래서 매일 꾸준히 알고리즘 문제를 풀고, 정규 교육 시간에는 spring, springboot, mybatis을 사용해서 백엔드 공부를 진행하였다. 그래서 더이상 쓸말이...없다...그냥 평범한 싸피 생활의 연속이였다. 5월 거의 ..

    [Spring] JAVA에서 Spring으로 변환 정리 (개인 공부 정리용)

    [Spring] JAVA에서 Spring으로 변환 정리 (개인 공부 정리용)

    스프링 학습 후 개인적으로 정리하기 위한 글이므로 잘못된 부분들이 많을 수 있습니다. 설정 파일들의 읽는 흐름은 pom.xml => (web.xml) => root-context.xml => servlet-context.xml 순이다. 1. pom.xml : 필요한 lib들과 버전들을 추가해서 수정해준다. (db, jsp, junit 등) 2. web.xml post를 사용하려면 그 전에 utf-8로 인코딩을 해줘야지 한글이 제대로 보인다. 그러므로 web.xml에 filter를 추가해줘야한다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter /* web.xml 에 적힌 순서..

    [BJ] 백준 2579 계단 오르기 (JAVA)

    [BJ] 백준 2579 계단 오르기 (JAVA)

    문제 https://www.acmicpc.net/problem/2579 풀이 방법 각 계단에는 점수가 있고, 계단을 밟으면 점수를 얻을 수 있다. 대신에 한번에 최대 두 칸까지만 오를 수 있고, 연속한 세개의 계단을 밟을 수 없다. 얻을 수 있는 최대 점수를 구하면 되는 문제다. dp를 사용해서 풀었다. dp[i]의 값은 i번째 계단은 밟는다는 것을 가정하고, i-1번째, i 번째 연속해서 밟는 경우와 i-2번째, i번째 한 칸 뛰어 넘고 밟는 경우 중에서 더 큰 점수를 가진 경우를 저장했다. 연속해서 밟는 경우는 연속 3개는 밟으면 안되기 때문에 dp[i-3]의 값을 더해줘야한다. 제출 코드 import java.io.*; public class BJ_2579_계단오르기 { public static v..

    [알고리즘] 선택 정렬 Selection Sort

    [알고리즘] 선택 정렬 Selection Sort

    설명 원소를 넣을 위치를 정하고,어떤 원소를 넣을지 선택한 후 선택한 원소를 지정한 자리에 넣는 알고리즘이다. 과정 (오름차순 정렬인 경우) 1. 배열의 원소 중에서 최소값을 찾는다. 2. 해당 값을 배열의 맨 앞에 위치한 값과 교환한다. 3. 고른 자리(맨 앞)를 제외한 나머지 배열을 같은 방식으로 반복한다. 구현(Java) public static void sort(int[]arr){ for (int i = 0; i arr[j]){ minIdx= j; } } //지정위치에 있는 ..

    [알고리즘] 거품 정렬 Bubble Sort

    [알고리즘] 거품 정렬 Bubble Sort

    설명 서로 인접한 두 원소의 대소를 비교하고, 조건(오름차순, 내림차순 등)에 맞지 않다면 자리를 교환하면서 정렬하는 알고리즘이다. Selection Sort와 유사하다. 과정 배열의 크기 : N (0~N-1) 1회전은 i=0 부터 i와 i+1번째 원소, 즉 자신과 자신의 오른쪽 수를 비교해서 조건에 맞지 않는다면 서로 교환한다. 1회전이 끝나면 가장 큰 원소가 맨 뒤로 이동해있으므로 다음 회전에서 마지막 원소는 제외된다. 2회전도 i=0부터 1번과 동일하게 수행한다. 그러면 두번째로 큰 수가 마지막에서 두번째에 위치한다. 3회전에서는 동일하게 수행해준다. 0~N-3까지만 확인하게 된다. ⇒ 1회전에서는 0개 제외 ⇒ 2회전에서는 1개 제외 ⇒ 3회전에서는 2개 제외 ⇒ N회전에서는 N-1개 제외 구현(..

    [Spring] 인프런 스프링 입문 강의 정리 #2

    [Spring] 인프런 스프링 입문 강의 정리 #2

    [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 글에서 나오는 모든 코드와 사진들은 김영한님의 인프런 스프링 입문 강의에서 가져온 것임을 미리 알립니다. 정적 컨텐츠 서버에서 하는 거 없이 파일을 그대로 웹브라우저에 내려주는 것. staic폴더 안에 html 파일 생성해주고 다음과 같이 작성 src/main/resources/static/hello-static.html 정적 컨텐츠 입니다. 그리고 http://localhost:8080/hello-static.html 접속해보면 다음과 같은 ..

    [BJ] 백준 2748 피보나치 수2 (JAVA)

    [BJ] 백준 2748 피보나치 수2 (JAVA)

    문제 https://www.acmicpc.net/problem/2748 풀이 방법 피보나치 수의 기본 문제다. n을 입력하면 n번째 피보나치 수를 출력하는 간단한 문제다. 나는 dp를 사용했고 N까지 구해준 뒤 dp[N]을 출력해줬다. 제출 코드 import java.io.*; import java.util.*; public class BJ_2748_피보나치수2 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); long[] dp = new l..

    [BJ] 백준 1003 피보나치 함수 (JAVA)

    [BJ] 백준 1003 피보나치 함수 (JAVA)

    문제 https://www.acmicpc.net/problem/1003 풀이 방법 dp를 활용한 피보나치 관련된 문제다. 재귀호출을 사용해서 피보나치 수열을 구현할 때 0과 1을 호출하는 횟수를 출력해야한다. 그래서 dp배열은 [수][0과1호출수]을 담을 2차원 배열로 선언해줬다. 0일 때는 0호출 한번, 1일때는 1호출 한번이기 때문에 각각 1로 초기화해주고, 입력값의 최대값이 40이였기 때문에 나는 미리 40까지 다 구해주고, n에 따라서 출력해서 사용했다. 2부터 40까지 반복문을 돌리면서 i-1, i-2의 0과 1 호출 횟수를 더한 값을 각각 dp[n]에 저장해줬다. 그 이유는 재귀호출로 피보나치 수열을 구현했을때 처음부터 생각해보자. 그러면 f(2) = f(1) +f(0) 부터 시작할 것이다. ..