본문 바로가기

분류 전체보기

(1196)
3074. 입국심사 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV_XEokaAEcDFAX7 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 순서를 정해주는 것 보다 최소 시간을 어떻게 구할 것인가에 초점. 가장 최대로 걸리는 line에 모든 사람들이 기다려서 해결하는 것이 가장 최악의 시간이고 0~ 최악의 시간 이 사이 어딘가에 최적의 시간이 존재. 이중분할 방식으로 mid 값을 기준으로 사람이 몇명 해결할 수 있는지 구하고 그 사람수가 전체 사람수보다 작은 경우 시간이 더필요하므로 최소 시간을 mid + 1로 변경 반대의 경우 시간이..
application property 암호화 gradle 추가 compile "com.github.ulisesbocchio:jasypt-spring-boot-starter:1.17" configure bean 생성 @Configuration public class JasyptConfig { @Bean("jasyptStringEncryptor") public StringEncryptor stringEncryptor() { PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); SimpleStringPBEConfig config = new SimpleStringPBEConfig(); config.setPassword("test"); //암호화에 사용할 키 -> 중요 config.set..
백준 2206번 벽 부수고 이동하기 문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동하여도 된다. 맵이 주어졌을 때, 최단 경로를 구해 내는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 ..
백준 1600번 말이 되고픈 원숭이 문제 동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그 녀석은 말(Horse)이 되기를 간절히 원했다. 그래서 그는 말의 움직임을 유심히 살펴보고 그대로 따라 하기로 하였다. 말은 말이다. 말은 격자판에서 체스의 나이트와 같은 이동방식을 가진다. 다음 그림에 말의 이동방법이 나타나있다. x표시한 곳으로 말이 갈 수 있다는 뜻이다. 참고로 말은 장애물을 뛰어넘을 수 있다. x x x x 말 x x x x 근데 원숭이는 한 가지 착각하고 있는 것이 있다. 말은 저렇게 움직일 수 있지만 원숭이는 능력이 부족해서 총 K번만 위와 같이 움직일 수 있고, 그 외에는 그냥 인접한 칸으로만 움직일 수 있다. 대각선 방향은 인접한 칸에 포함되지 않는다. 이제 원숭이는 머나먼 여행길을 떠난다. 격자판의 맨..
SpringBoot Email 전송 기능 (Gmail) Gradle 추가 compile 'org.springframework.boot:spring-boot-starter-mail' compile fileTree(dir: 'libs', include: '*.jar') application properties 추가 spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=imu spring.mail.password=123456 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true username에 계정 ID (@mail 제외) password에 비밀번호 MailSende..
백준 2468번 안전영역 문제 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다. 어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어지며 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수이다. 예를 들어, 다음은 N=5인 지역의 높이 정보이다. 이제 위와 같은 지역에 많은 비가 내려서 높이가 4 이하인 모든 지점이 물에 잠겼다고 하자. 이 경우에 물에 잠기는 지점을 회색으로 ..
3503. 초보자를 위한 점프대 배치하기 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWGsV8IaAXsDFAVW&categoryId=AWGsV8IaAXsDFAVW&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 10000개 데이터로 10개 테스트 1초이므로 DFS는 절대 아닐거라고 생각. 그리디하게 풀려고 하는데 아이디어가 안떠올랐다.. 정답 코드를 참조하니까 정렬후 가장 작은 수를 중간에 넣고 앞 뒤로 그보다 큰 수들을 차례로 배치하는 경우가 각 차이가 가장 최소가 되는 경우. 이렇게 정렬된 deque에서 최대값을 구하는 ..
6782. 현주가 좋아하는 제곱근 놀이 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWgqsAlKr9sDFAW0&categoryId=AWgqsAlKr9sDFAW0&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 10000개 테스트케이스를 합쳐서 C의 경우 1초 / C++의 경우 1초 / Java의 경우 2초 10000개 테케에 N범위도 10^12이므로 DFS, BFS 완탐으로 불가능 while 반복으로 푸는것도 문제가 있음. 제곱근이 가능하면 제곱근 시키고 아니면 ++시키는 간단한 로직으로는 많은 반복이 생기므로 제곱근이 아..