1. 오류 > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.3. Required by: ... 인텔리제이(IntelliJ) 환경에서 프로젝트를 실행하자마자 만난 오류였다. 2. 원인 ❗ 스프링 이니셜라이저(Spring Initializr): https://start.spring.io ❗ 스프링부트(Spring Boot) 3.0 이상 버전에서는 Java 17을 필요로 한다. 스프링 이니셜라이저(Spring Initializr)에서 선택했던 Spring Boot/Java 버전간 호환성의 문제였다. 3. 해결 3-1..
1. 문제 https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 2. 연관 알고리즘 자료 구조(Data Structures) 덱(Deque) 3. 풀이 풍선이 원형으로 놓여있으므로 양방향으로 삽입/제거가 가능한 덱(Deque)을 활용해 상황을 가정할 것이다. 터뜨리는 데는 규칙이 따른다: ①첫 번째 풍선을 우선 터뜨리고 → ②해당 풍선에 든 종이에 적힌 값만큼 자리 이동한 뒤 → ③또 한 번 처음에 온 풍선을 터뜨린다. 더 이상 남..
프로퍼티 암호화의 필요성을 절실히 느낀 건 소셜 로그인 기능을 구현하고서였다. 남 일 같지 않던 '개인키 노출로 인한 AWS 과금 이슈'를 접한 무렵이기도 했고, 로컬 단위의 소규모 프로젝트라 해도 클라이언트 ID/패스워드 및 API 키와 같은 중요 정보를 깃허브(GitHub)에 공개적으로 올려두는 건 무슨 이유에서든 엄두가 나지 않았다. 실사용 DB 등을 다룰 나중을 위해서라도 암호화에 대한 학습이 당장 필요해진 셈이었는데, 어디 여쭐 곳 없이 구글링하던 중 발견한 방법이 바로 Jasypt였다. 1. Jasypt ❗ Jasypt(Java Simplified Encryption)는 개발자로 하여금 암호화 과정이 어떻게 치러지는지에 대한 깊은 지식 없이도 최소한의 노력을 들여 기본적인 암호화 기능을 추가할..
1. 문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 2. 연관 알고리즘 자료 구조(Data Structures) 덱(Deque) 3. 풀이 ❗ Deque(Double-Ended Queue)란, 데이터 삽입/제거 과정이 양방향 모두에서 가능하도록 구현된 큐(Queue)이다. 한편, 큐(Queue)는 일렬로 늘어선 줄이나 번호표가 주어진 은행 창구처럼 먼저 들어온 데이터가 먼저 나가는(FIFO, First In First Out) 형태로..
1. 문제 https://www.acmicpc.net/problem/14928 14928번: 큰 수 (BIG) 첫째 줄에 제연이가 가장 좋아하는 수 N이 주어진다. (N ≤ 101,000,000) www.acmicpc.net 2. 연관 알고리즘 수학(Mathematics) 사칙연산(Arithmetic) 임의 정밀도 / 큰 수 연산(Arbitrary Precision / Big Integers) 3. 풀이 3-1. 시간 초과 BigInteger N = new BigInteger(br.readLine()); BigInteger M = new BigInteger("20000303"); bw.append(N.remainder(M) + "\n"); 지문에서 10의 100만 제곱인 큰 수를 사용한다기에 BigInt..
목차 java.lang.Math - Math.random(); java.util.Random 클래스 Scanner 클래스 자바 API API(Application Programming Interface)의 약어이다. JDK 설치 통해 기본적으로 제공한 클래스, 인터페이스 등의 소스코드들을 의미한다. ctrl 누르고 String 누르면 String.class가 조회되듯이 API 문서들을 찾아 활용할 수가 있다. 설치된 JDK 버전에 맞춰 Google 검색창에 'JAVA API 11' 검색해 사이트 찾을 수 있다. java.lang 패키지 하위에 있는 클래스는 import 구문이 불필요하다. 대표적인 예로 java.lang.System, java.lang.String가 있다. 풀네임은 이러하나 굳이 impo..