본문 바로가기

분류 전체보기153

[백준] 17836번: 공주님을 구해라! (Java) 1. 문제설명용사는 (N, M) 크기의 성 입구 (1, 1)로 들어왔다. 성의 여러 군데는 마법 벽이 세워져있고, 용사는 마법 벽을 통과할 수 없다. 마법 벽을 피해 (N, M) 위치에 있는 공주님을 구출해야 한다.저주에 걸린 공주는 T시간 이내에 용사를 만나지 못하면 돌로 변하게 된다. 용사는 한 칸을 이동하는 데 한 시간이 걸리고, 상하좌우로 이동할 수 있다.성에는 전설의 명검 "그람"이 숨겨져 있고, 그람을 구하면 마법의 벽이 있는 칸일지라도, 벽을 부수고 그 공간으로 갈 수 있다. "그람"은 성의 어딘가에 반드시 한 개 존재하고, 용사는 그람이 있는 곳에 도착하면 바로 사용할 수 있다.용사가 공주님을 안전하게 구출할 수 있는지, 얼마나 빨리 구할 수 있는지 구하는 문제이다.시간 제한: 1초메모리 .. 2024. 9. 30.
[netplix-security-a] UserDetailsService 와 UserDetailsManager 구현 Netplix 구독형 멤버십 프로젝트로 배우는 SpringSecurity[Ch 3. UserDetails와 사용자 관리] - 01. UserDetails 살펴보기강의를 바탕으로 실습 내용을 정리하였습니다.목차 1. UserDetailsService 구현InMemoryUserDetailsManager 를 활용해서 UserDetailsService 를 구현해보자이를 위해 먼저 User 를 구현해야 함 User 클래스username, password, authority 는 모두 final 으로 설정하여 값을 변경할 수 없도록 지정간단한 예제를 위해서 authority 는 하나만 설정package fast.campus.fcss01.user;...public class User implements UserDeta.. 2024. 9. 29.
[netplix-security-a] UserDetails와 영속성 엔티티의 분리된 구현 Netplix 구독형 멤버십 프로젝트로 배우는 SpringSecurity[Ch 3. UserDetails와 사용자 관리] - 01. UserDetails 살펴보기강의를 바탕으로 실습 내용을 정리하였습니다.목차  이번 시간에는 UserDetails 인터페이스에 대해 조금 더 디테일한 레벨에서 알아보자계정 만료, 계정 잠금, 자격 증명 만료, 계정 비활성화 기능을 통해 사용자를 애플리케이션 수준에서 제한할 수 있음 1. 간단한 UserDetails 구현해보기UserDetails, GrantedAuthority 등을 이용하여 기본적인 UserDetails 를 구현해보자 요구사항사용자의 이름은 ”jinny.lee”비밀번호는 평문으로 “12345”읽기 권한이 필요함 (READ) user 라는 패키지를 생성하고 하.. 2024. 9. 29.
[netplix-security-a] 기본 구성 재정의 Netplix 구독형 멤버십 프로젝트로 배우는 SpringSecurity[Ch 2. 스프링 시큐리티 기초] - 03. 기본 구성 재정의강의를 바탕으로 실습 내용을 정리하였습니다.목차 1. UserDetailsService 구성 요소 재정의InMemoryUserDetailsManager 구현체를 이용하여 기본 구성을 재정의하는 방법에 대해 알아보자스프링 빈으로 등록할 수 있음config 패키지를 생성하고 설정 클래스(SecurityConfig)를 생성@Configuration 어노테이션으로 클래스를 구성 클래스로 구분@Bean 어노테이션으로 반환되는 값을 스프링 컨텍스트에 반영InMemoryUserDetailsManager 를 UserDetailsService 로 반영package fast.campus.f.. 2024. 9. 29.
[백준] 11048번: 이동하기 (Java) 1. 문제설명NxM 크기의 미로가 있고, 가장 왼쪽 윗 방은 (1, 1), 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 현재 (1, 1)에 있고, (N, M)으로 이동하려고 한다. 준규가 (r, c)에 있으면, (r+1, c), (r, c+1), (r+1, c+1)로 이동할 수 있고, 방문하는 방의 사탕을 모두 가져갈 수 있다. 준규가 가져올 수 있는 사탕의 최댓값을 구하는 문제이다.시간 제한: 1초메모리 제한: 256MB 2. 접근 방식DP 방법을 사용한다.dp 배열(2차원 배열)에 해당 칸까지 이동했을 때 얻을 수 있는 사탕의 최댓값을 저장한다.DP 점화식: 현재 칸에 도달할 수 있는 세 가지 경로(윗칸, 왼쪽칸, 왼쪽 위 칸)에서 가장 많은 사탕을 얻는 경로를 찾는다.도착점(n-1, m-1)에서.. 2024. 9. 24.
[백준] 17779번: 게리맨더링 2 (Java) 1. 문제설명재현시는 NxN 크기의 격자로 나타낸다. 각 칸은 구역(r, c)을 의미한다. 구역을 다섯 개의 선거구로 나눠야 하고, 한 선거구에 포함되어 있는 구역은 모두 연결되어 있어야 한다.시간 제한: 1초메모리 제한: 512MB 2. 접근 방식가능한 모든 (x, y, d1, d2) 조합을 탐색하여 각 구역을 나누기 위한 조건을 만족하는지 확인한다.경계선에 따라 5개의 구역을 나눈다. 경계선(5구역)을 먼저 설정한 뒤, 각 구역(1~4구역)의 인구를 계산한다.각 구역별 인구 차이를 계산한 뒤, 그 차이의 최소값을 갱신한다. 3. 최종 코드import java.io.*;import java.util.*;public class Main { static int n; static boolean[].. 2024. 9. 20.
[백준] 17140번: 이차원 배열과 연산 (Java) 1. 문제설명크기가 3x3인 배열 A가 있고, 이 배열의 인덱스는 1부터 시작하며, 1초가 지날 때 마다 연산이 적용된다.R 연산: 배열 A의 모든 행에 대해서 정렬을 수행한다. 행의 개수 ≥ 열의 개수인 경우에 적용된다.C 연산: 배열 A의 모든 열에 대해서 정렬을 수행한다. 행의 개수 각 행 또는 열에 있는 수의 등장 횟수를 세고, 수의 등장 횟수가 커지는 순으로, 등장 횟수가 같으면 수가 커지는 순으로 정렬한다. 그 다음에는 배열 A에 정렬된 결과를 다시 넣는다. 수와 등장 횟수를 모두 넣으며, 순서는 수가 먼저이다. (예: [3, 1, 1]은 [3, 1, 1, 2]로 변환)정렬 후 가장 긴 행 또는 열에 맞춰 다른 행이나 열의 크기가 조정되고, 남는 칸은 0으로 채워진다. 행 또는 열의 크기가 1.. 2024. 9. 19.
반응형