[java] 백준 1377번 문제(버블 소트)
자료구조 & 알고리즘/BOJ2025. 3. 21. 11:29[java] 백준 1377번 문제(버블 소트)

원본 링크 : https://www.acmicpc.net/problem/1377문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Boj_1377{ // 정렬 전 인덱스와 값을 저장하는 객체 static class Pair implements Comparable { int index; // index 저장 int value; // value 저장 // 생성자 Pair(int index, int value) { this...

[java] 백준 16967번 문제(배열 복원하기)
자료구조 & 알고리즘/BOJ2025. 3. 20. 11:45[java] 백준 16967번 문제(배열 복원하기)

원본 링크 : https://www.acmicpc.net/problem/16967문제설명 소스코드import java.io.*;import java.util.StringTokenizer;public class Boj_16967{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // H, W, X, Y를 받아옴 StringT..

[React] vite를 통해서 리액트 프로젝트 생성 및 실행
Front-End/React2025. 3. 19. 16:14[React] vite를 통해서 리액트 프로젝트 생성 및 실행

프로젝트 생성우선 node.js가 설치되어있어야 한다.필자의 node 버전은 22.14.0이다.맥에서 Homebrew를 통해서 22버전을 다운로드하는 명령어는 아래와 같다.brew install node@22 이후 프로젝트 폴더를 생성할 경로로 이동한다.cd cd /Users/... 아래의 명령어를 입력한다.npm create vite@latest  위와 같은 선택과정을 생략하려면 아래의 명령어를 입력한다.npm create vite@latest my-react-app -- --template reactnpm create: npm을 사용해 새 프로젝트를 생성하는 명령어vite@latest: vite의 최신 버전을 사용my-react-app:생성할 프로젝트 폴더명--: 이후의 옵션들을 vite 명령어에 전..

[java] 백준 17298번 문제(오큰수)
자료구조 & 알고리즘/BOJ2025. 3. 19. 11:12[java] 백준 17298번 문제(오큰수)

원본 링크 : https://www.acmicpc.net/problem/17298 문제설명  소스코드import java.io.*;import java.util.Stack;import java.util.StringTokenizer;public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // n과 수열을 받아옴..

[java] 백준 1874번 문제(스택 수열)
자료구조 & 알고리즘/BOJ2025. 3. 18. 11:29[java] 백준 1874번 문제(스택 수열)

원본 링크 : https://www.acmicpc.net/problem/1874 문제설명  소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Stack;public class Boj_1874 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); Stack..

[Java] 백준 12891번 문제(DNA 비밀번호)
자료구조 & 알고리즘/BOJ2025. 3. 17. 15:37[Java] 백준 12891번 문제(DNA 비밀번호)

원본 링크 : https://www.acmicpc.net/problem/12891 문제설명  소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Boj_12891{ static int[] inputACGT = new int[4]; // 입력 받은 부분문자열에 포함되어야 할 최소 개수 static int[] countACGT = new int[4]; // 구간에 포함된 부분문자열에 포함된 개수 public static void main(String[] args) throws IOExceptio..

[Java] BigInteger 클래스
Language/Java2025. 2. 28. 09:48[Java] BigInteger 클래스

BigInteger는 Java에서 기본적으로 제공하는 정수 타입(int, long)보다 더 큰 정수를 다룰 수 있도록 설계된 클래스이다.int는 32비트 정수(약 ±21억), long은 64비트 정수(약 ±9경)까지만 저장할 수 있지만, BigInteger는 이보다 훨씬 큰 정수(무한대)를 다룰 수 있다.생성문자열을 이용한 생성import java.math.BigInteger;public class Main { public static void main(String[] args) { BigInteger bigInt1 = new BigInteger("123456789012345678901234567890"); System.out.println(bigInt1); // 1234..

[Spring] GeoIP를 이용한 해외 IP 차단
Back-End/Spring2025. 1. 16. 21:24[Spring] GeoIP를 이용한 해외 IP 차단

MaxMind 에서 데이터베이스 다운로드MaxMind에서 먼저 데이터베이스를 받아와야한다.국가를 제외한 나머지 자료(시, 도 등)는 꽤 부정확하다는 글이 많고, 해외인지 아닌지가 가장 중요하기 때문에 country 데이터베이스만 사용하기로 했다.아래 사이트에서 회원 가입을 한 후 country 데이터베이스를 다운로드 받는다.(GeoLite2-Country.mmdb)https://www.maxmind.com/en/home 스프링에 적용의존성 추가build.gradle에 geoip 의존성을 추가해준다.implementation "com.maxmind.geoip2:geoip2:4.1.0" 서비스 로직 작성아래 서비스 계층에는getClientIP() : request 객체를 바탕으로 IP를 추출하는 메서드 ge..

image