전체 글

전체 글

    [BOJ/JAVA] 16958번: 텔레포트

    16958번: 텔레포트https://www.acmicpc.net/problem/16958키워드2차원 평면 위에 N개의 도시가 있다. 일부 도시는 특별한 도시이다. (r1, c1)에 있는 도시에서 (r2, c2)에 있는 도시로 가는 이동 시간은 |r1 - r2| + |c1 - c2|와 같다. 만약, 두 도시가 특별한 도시라면, 텔레포트를 이용해서 이동할 수도 있다. 텔레포트에 걸리는 시간은 T이다.두 도시의 쌍 M개가 주어졌을 때, 최소 이동 시간을 구해보자.구현두 도시 간 거리를 전부 계산하여 cityMatrix에 저장한다.만약 두 도시가 특별한 도시라면 T와 비교하여 더 작은 시간을 저장한다.플로이드-워셜 알고리즘을 이용하여 최소 이동 시간을 구하자.코드import java.io.BufferedRead..

    [BOJ/JAVA] 1339번: 단어 수학

    1339번: 단어 수학https://www.acmicpc.net/problem/1339키워드단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다.각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다.N개의 단어가 주어졌을 때, 그 수의 합을 최대로 만드는 프로그램구현각 자릿수의 가중치만큼을 계산해서 더해준다.N개의 단어라고해서 알파벳 A부터 Z까지의 알파벳을 전부 사용하는 것이 아니다.두 개 이상의 알파벳이 같은 숫자로 바뀌면 안되므로 입력에서 10종류 이하의 알파벳 단어만 주어질 것이다.→ Map을 이용하여 사용된 알파벳의 Key, 알파벳 가중치 Value를 저장한다.각 자릿수의 ..

    [BOJ/JAVA] 23559번: 밥

    23559번: 밥https://www.acmicpc.net/problem/23559키워드제주대 학생회관 식당에는 두 개의 메뉴가 있다.코너 A로 가면 5,000원짜리 메뉴를 먹을 수 있고, 코너 B로 가면 1,000원짜리 메뉴를 먹을 수 있다.NNN일동안 매일 학식의 두 메뉴 중 정확히 하나를 골라서 먹어야 한다.준원이는 이미 모든 날의 각 메뉴가 얼마나 맛있을지 수치를 매겨 두었다.준원이는 NNN일간 학식에 총 XXX원 이하를 써야 한다.고른 메뉴의 맛의 합을 최대화 해주자!구현일단 무조건 더 맛있는 메뉴를 고른다.이후 금액에 맞게끔 1,000원 짜리 메뉴로 바꾸었을 때 차이가 가장 적은 메뉴부터 교체해 나간다. boolean is5000[][i] 번째 고른 메뉴가 5000원 짜리 메뉴인가?더 맛..

    [BOJ/JAVA] 27313번: 효율적인 애니메이션 감상

    27313번: 효율적인 애니메이션 감상 https://www.acmicpc.net/problem/27313 키워드 애니메이션을 최대 M M M시간 동안만 보기로 했다. 한별이는 애니메이션을 동시에 최대 K K K개씩 묶어서 보기로 했는데, 한별이가 동시에 애니메이션을 보는 방법은 다음과 같다. 애니메이션을 보고 있지 않은 상태에서, 한별이는 아직 보지 않은 애니메이션 중 K K K개 이하의 애니메이션을 동시에 보기 시작한다. 애니메이션을 보고 있는 도중에는 새로운 애니메이션을 보기 시작할 수 없다. 이로 인해, 한별이는 보기 시작한 애니메이션 중에서 가장 긴 애니메이션이 끝날 때까지 다른 애니메이션을 보기 시작할 수 없다. 한별이는 애니메이션 시청의 달인이기 때문에 애니메이션이 끝남과 동시에 새로운 애니..

    [BOJ/JAVA] 1744번: 수 묶기

    1744번: 수 묶기https://www.acmicpc.net/problem/1744키워드길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다.수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다.수열의 합을 구할 때 묶은 수는 서로 곱한 후에 더한다.구현양수의 경우 큰 것 끼리 곱하면 더욱 커지므로 무조건 묶어준다.음수의 경우 작은 것 끼리 곱하면 더욱 커지므로 무조건 묶어준다.1의 경우 곱하면 더 작아지므로 더해준다.음수의 갯수가 홀수개 이고, 0이 존재한다면 가장 큰 음수와 0을 묶어준다.코드import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReade..

    [BOJ/JAVA] 1198번: 삼각형으로 자르기

    1198번: 삼각형으로 자르기https://www.acmicpc.net/problem/1198키워드볼록 다각형이 있고, 여기서 3개의 연속된 점을 선택해서 삼각형을 만든다. 그 다음, 만든 삼각형을 다각형에서 제외한다. 원래 다각형이 N개의 점이 있었다면, 이제 N-1개의 점으로 구성된 볼록 다각형이 된다. 위의 과정은 남은 다각형이 삼각형이 될 때까지 반복한다.볼록 다각형의 점이 시계 방향순으로 주어진다. 마지막에 남은 삼각형은 여러 가지가 있을 수 있다. 이때, 가능한 넓이의 최댓값을 구하는 프로그램을 작성하시오.구현문제에서는 삼각형을 계속 제거해 나갔지만 결국은 볼록 다각형의 3점으로 만들 수 있는 삼각형 넓이의 최댓값과 동일한 문제이다.N개의 점에서 3개를 선택하여 해당 삼각형의 넓이의 최댓값을 ..

    [BOJ/JAVA] 1711번: 직각삼각형

    1711번: 직각삼각형https://www.acmicpc.net/problem/1711키워드2차원 평면에 N개의 점이 주어져 있다. 이 중에서 세 점을 골랐을 때, 직각삼각형이 몇 개나 있는지를 구하는 프로그램을 작성하시오.구현한 점을 기준으로 다른 두 점을 향한 벡터의 내적이 0이면 직각임을 이용한다.코드import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.StringTokenizer; public class java_..

    [BOJ/JAVA] 11758번: CCW

    11758번: CCWhttps://www.acmicpc.net/problem/11758키워드2차원 좌표 평면 위에 있는 점 3개 P1, P2, P3가 주어진다. P1, P2, P3를 순서대로 이은 선분이 어떤 방향을 이루고 있는지 구하는 프로그램을 작성하시오.구현P1P2 벡터와 P2P3 벡터의 외적을 이용하여 계산한다.두 벡터의 외적이 0이면 일직선이다.두 벡터의 외적이 양수면 시계방향이다.두 벡터의 외적이 음수면 반시계방향이다.코드import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class java_11758 { s..

    빌드 자동화 도구

    start.spring.io 사이트에서 프로젝트 관리 도구의 선택Android Studio에서 Gradle 프로젝트 관리 도구가 있다. 위 프로젝트 관리도구는 무엇이며, 빌드 자동화는 무엇인지 알아보자프로젝트 관리도구말 그대로 프로젝트를 관리하는 도구이다.프로젝트 관리 기능과 빌드 자동화 기능을 제공한다.프로젝트 관리프로젝트 관련된 라이브러리의 의존성, 버전을 관리한다.프로젝트 산출물을 일관된 구조로 관리한다.프로젝트 디렉토리 구조 관리의존성 관리빌드 프로세스 관리빌드 자동화💡개발자가 반복해서 하는 코딩을 잘 짜여진 프로세스를 통해 자동으로 실행하여, 믿을 수 있는 결과물도 생산해 낼 수 있는 일련의 작업방식 및 방법정리하면 빌드를 포함하여 테스트 및 배포를 자동화 하는 도구이다. 빌드 자동화 도구로는 ..

    [Spring Data JPA] - JPA Auditing

    JPA Auditing💡각 데이터마다 누가, 언제 생성했고 변경했는지 알기 위한 방법대표적으로 사용되는 필드생성 주체생성 일자변경 주체변경 일자 기능 사용해보기JPA Auditing 기능 활성화main 메서드가 있는 클래스에서 @EnableJpaAuditing Annotation을 추가한다.package com.springboot.advanced_jpa; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @Spri..