"꾸준하고 완벽한 한 걸음"

2025/03/07 7

[백준 01025] 제곱수 찾기 [Java]

문제https://www.acmicpc.net/problem/1025 풀이N*M 의 보드에서 행과 열이 등차수열을 이루는 칸들의 숫자를 이어 붙여 만든 수가, 어떤 정수의 제곱수 중 가장 큰 제곱수를 찾는 문제다.만약 찾지 못했다면 -1을 반환해야 한다. int res = -1; for (int i = 0; i 행과 열에 대한 등차수열이기 때문에 각 위치에 2N * 2M 범위에 대한 등차수열을 찾으면 된다. for (int dx = -N; dx 만약 증가값이 둘 다 0이라면 탐색이 불가능하므로 유의하며, 숫자를 이어 붙인 후 가장 큰 제곱수를 찾아주면 된다. if (dx != 0 || dy != 0) { ..

[백준 01013] Contact [Java]

문제https://www.acmicpc.net/problem/1013 풀이입력으로 주어지는 여러 문자열들이 지문에서 주어진 패턴과 동일한 문자열인지 판별하는 문제다.정규표현식을 사용해 쉽게 풀이할 수 있다. Pattern pattern = Pattern.compile("^(100+1+|01)+$"); while (T-- > 0) { // Solve sb.append(pattern.matcher(br.readLine()).matches() ? "YES\\n" : "NO\\n"); }소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/nor..

개발자 유미 - 스프링 시큐리티 6. DB 연결

스프링 시큐리티 6 : DB 연결 개발자 유미 | 커뮤니티 개발자 유미 | 커뮤니티 www.devyummi.com 데이터베이스의 필요성로그인한 사용자의 인증을 위해서는 회원 정보를 저장해야한다.이를 위해서는 DB가 필요하며 JPA를 사용해 DB 쿼리문을 쉽게 생성할 수 있다.build.gradle 설정프로젝트에 MySQL 및 JAP 의존성을 추가 후 리프레쉬 후 필요한 파일을 다운받고 활성화를 해주자.dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j'}application.properties 설정스프링 서버에서 DB에 ..

개발자 유미 - 스프링 시큐리티 5. BCrypt 암호화 메소드

스프링 시큐리티 5 : BCrypt 암호화 메소드 개발자 유미 | 커뮤니티 개발자 유미 | 커뮤니티 www.devyummi.com 단방향 해시 암호화로그인을 통한 사용자 인증 시 사용자의 비밀번호에 대해 단방향 해시 암호화를 진행해야 한다.이를 통해 비밀번호의 유출로부터 안전해지고, 복호화가 불가능해 보안을 지킬 수 있다.스프링 시큐리티는 비밀번호의 암호화를 위해 BCrypt Passwrod Encoder를 사용하는 것을 권장한다.BCrypt Passwrod Encoder 반환 빈 등록BCrypt Passwrod Encoder를 반환하는 메소드를 만들고, 빈으로 등록하자.package com.example.testsecurity.config;import org.springframework.context...

개발자 유미 - 스프링 시큐리티 4. 커스텀 로그인 설정

스프링 시큐리티 4 : 커스텀 로그인 설정 개발자 유미 | 커뮤니티 개발자 유미 | 커뮤니티 www.devyummi.com 기존의 Config 설정을 다시 확인해보자. @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests((auth)->auth .requestMatchers("/", "/login").permitAll() .requestMatchers("/admin").hasRole("ADMIN") ..

[백준 17521] Byte Coin [Java]

문제https://www.acmicpc.net/problem/17521 풀이가격이 낮을 때 사고 높을 때 팔아서 마지막에 얻는 최종 현금의 최댓값을 계산하는 문제다.사고 파는 과정에서 최종 현금은 매우 커질 수 있다. long으로 계산해야 한다.항상 구매 또는 판매 가능한 최대 수량의 코인을 거래하는 것이 좋다.현금이 항상 나누어 떨어지지 않으니 나머지가 있음에 유의하자. // Solve long coin = 0; for (int i = 1; i A[i - 1]) { coin = W / A[i - 1]; W %= A[i - 1]; } else if (coin > 0 && A[i] 마지막에 코인..

[백준 14007] Small Weird Measurements [Java]

문제https://www.acmicpc.net/problem/14007 풀이주어진 시퀀스에 대해 문제에서 주어진 이상한 구간의 수를 구하는 문제다.이상한 구간은 다음과 같다.자기 자신은 이상한 구간이 된다.이전 요소의 차와 현재 요소의 차가 부호가 다르면 이상한 구간이 된다. // Solve int cnt = N; for (int i = 0; i 요소의 차가 0이거나, 이전 요소의 차와 현재 요소의 차가 동일할 때는 이상한 구간이 아니게 된다.위 조건문을 통해 이상한 구간이 맞다면 탐색을 중단하고, 다음 구간에 대한 탐색을 진행하자. if (diff == 0 || prevDiff != 0 && diff * prevDiff > 0) { ..