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

2025/03 43

[백준 14656] 조교는 새디스트야!! [Java]

문제https://www.acmicpc.net/problem/14656 풀이입력받은 N명의 학생 중 순서대로 서있지 않은 학생의 수를 구하는 문제다.인덱스는 0부터 시작이니, i번째 학생의 번호가 i + 1와 일치하지 않는 경우를 세면 된다. // Solve int cnt = 0; for (int i = 0; i 소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/14656.java

[백준 01052] 물병 [Java]

문제https://www.acmicpc.net/problem/1052 풀이N개의 병을 2개씩 합쳐서 하나의 병으로 만드는 문제다.만약 K개의 병으로 만들 수 없다면 병을 한 개 더 추가해 다시 합칠 수 있다.2개의 병을 한 개의 병으로 합치기 때문에 N을 최대로 합칠 수 있는 병의 수는 N을 이진수로 했을 때 1의 개수와 동일하다.예제 1번은 다음과 같다.1 1 1 1 1 1 1 1 1 1 1 1 12 2 2 2 2 2 14 4 4 18 4 1$13=1101_{(2)}$으로 필요한 병의 수는 3개지만, K는 2이므로 병을 더 추가해야 한다.$14 = 1110_{(2)}$에 대해 K는 2, 추가된 병은 1개다. 14개의 병을 합쳐 총 3개의 병에 { 8, 4, 2 }담을 수 있다.이를 코드로 구현하면 다음..

2025년 정보처리기사 필기 합격 후기 및 준비 방법

2025년 정보처리기사 필기 시험 합격 후 그 동안의 준비 과정과 전략을 공유하고자 합니다.목차교재 선택학습 방법시험 준비 및 준비 기간참고사항교재 선택이전부터 현재까지 자격증 준비 과정에서 제가 경험한 출판사별 특징은 다음과 같습니다.시나공 : 내용이 많아 학습용으로는 좋지만, 자격증 시험 대비에는 적합하지 않음.이기적 : 자격증 시험 대비에 적절한 이론과 문제 구성수제비 : 두음문법을 통한 빠른 암기, 적중률 높은 예상 문제이번 정보처리기사 필기 시험은 수제비 출판사를 선택했습니다.https://product.kyobobook.co.kr/detail/S000214896433 2025 수제비 정보처리기사 필기 기본서 | 윤영빈 - 교보문고2025 수제비 정보처리기사 필기 기본서 | 〈본서의 특징〉 ■ ..

Activity 2025.03.12

[백준 19621] 회의실 배정 2 [Java]

문제https://www.acmicpc.net/problem/19621 풀이N개의 회의실 정보와, 회의 참여 인원이 시간 순서대로 주어졌을 때회의를 진행할 수 있는 최대 인원을 구하는 문제다.문제에서는 K번째 회의는 K - 1, K + 1번째 회의와 시간이 겹치지만, 다른 회의와는 시간이 겹치지 않는다고 명시되어있다.dp로 쉽게 풀이할 수 있다.dp[i] : i 번째 회의까지 참석 가능한 최대 인원 수dp[i - 2]에 현재 회의를 진행하는 것과, dp[i - 1]을 그대로 진행하는 것 중 선택하면 된다.따라서 점화식은 다음과 같다.dp[i] = max(dp[i - 1], dp[i - 2] + 1) dp[1] = A[1]; for (int i = 2; i 소스코드https://g..

[백준 30389] Suffix [Java]

문제https://www.acmicpc.net/problem/30389 풀이주어지는 N개의 문자열에 대해 모든 부분 접미사 집합을 구하고, 다음 문자열의 접미사 집합과 XOR연산을 하는 문제다.우선 현재 문자열의 접미사를 구해주는 메서드를 만들자.입력받은 문자열을 역순으로 한 칸씩 늘려가며 문자열을 결합해서 저장하면 된다. private static List getSuffixes(String s) { StringBuilder sb = new StringBuilder(); List suffixes = new ArrayList(); for (int i = s.length() -1; i >= 0; --i) { sb.append(s.charAt(i)..

[백준 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에 ..