원본 링크 : 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...
원본 링크 : 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..
프로젝트 생성우선 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 명령어에 전..
원본 링크 : 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과 수열을 받아옴..
원본 링크 : 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..
원본 링크 : 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..
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..
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..