분류 전체보기 246

로그인 처리하기 - 쿠키 사용

단순히 쿠키만을 이용하여 로그인, 로그아웃 기능을 구현 해보았다.  @PostMapping("/login")public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) { if (bindingResult.hasErrors()) { return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(),form.getPassword()); log.info("login? {}", loginMember); if (loginMemb..

백준 10828번 스택

처음에는 Stack 클래스를 활용하여 쉽게 풀려고 했지만 시간초과가 발생하였다. 따라서 배열과 top 변수를 이용하여 간단하게 풀었다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Scanner;public class Problem10828 { public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in); BufferedReader br = new BufferedReader(new InputStreamReader(..

백준-11729번/하노이 탑 이동 순서(java)

문제 이해 하노이 탑의 이동 횟수를 수학 공식으로 나타내면 다음과 같다. 만약 원판이 2개일때의 이동 과정원판 1 을 1---->2로 이동원판 2 를 1---->3으로 이동원판 1 을 2---->3으로 이동 만약 원판이 N개일때 이동 과정원판 N-1 을 1---->2로 이동원판 N 를 1---->3으로 이동원판 N-1 을 2---->3으로 이동  문제 해결  매개변수 h1은 출발지, h3는 목적지로 표현public static void move(int n,int h1,int h2, int h3) { if(n==1){ sb.append(h1+" "+h3+"\n"); return; } move(n-1,h1,h3,h2); //A --> B sb.append..

알고리즘/백준 2024.12.29

백준-1780번/종이의 개수(java)

문제 이해입력된 배열을 9등분 해가면서 배열의 숫자가 모두 같으면 해당 숫자의 갯수 증가, 다르면 9등분 후 똑같이 반복한다.9등분으로 나누어서 분할 정복 알고리즘을 사용 해야한다. 문제 해결 해당 섹션의 숫자가 모두 같은지를 체크하는 함수public static boolean numCheck(int row, int col, int size){ //종이가 모두 같은 수로 이루어져 있는지 체크 int num = arr[row][col]; for(int i=row; i 만약 섹션의 숫자가 모두 같으면 해당 숫자 카운트 증가다른 숫자가 포함 되어있는 경우에는 9등분 후  각 섹션에 대해 partition함수 재귀 실행public static void partition(int row, int col,..

알고리즘/백준 2024.12.29

백준-11728번/배열 합치기 (java)

문제 이해 두 배열을 크기 순서대로 합치는 문제이다. 두 배열에 대한 포인터를 두 개 선언해서 풀면 간단하게 풀 수 있다. 한 배열에 대한 포인터가 배열의 범위를 벗어나면 다른 배열에는 이전에 넣었던 값보다 더 큰 값만 남기 때문에 나머지 배열의 요소를 그대로 출력하면 된다.  문제 해결 1. 두 배열에 대한 포인터 선언int p1=0;int p2=0;  2. 포인터를 이용하여 배열의 대소를 비교하여 작은 값을 출력while(p1  3. 아직 출력하지 못한 부분이 있는 배열을 출력if(p1==arr.length){ for(int j=p2; j   import java.io.*;import java.util.Arrays;import java.util.HashSet;import java.util.Str..

알고리즘/백준 2024.10.07

백준-10816번/숫자 카드 2 (java)

숫자 카드 문제와 유사하지만 숫자 카드 2 문제는 숫자카드가 중복되어 있어서 카드 갯수를 다 구해야 한다는 차이점이 있다. 이 문제도 숫자 카드 문제와 똑같이 이진 탐색으로 Mid값을 구해주고 앞 뒤로 중복된 카드가 있는지 구해주면 되는 줄 알고 코드를 작성했다. import java.io.*;import java.util.Arrays;import java.util.StringTokenizer;public class Main { static int N; static int M; static int[] arr; public static void main(String[] args) throws IOException { BufferedReader br = new Buffere..

알고리즘/백준 2024.10.06

백준-10815번/숫자 카드 (java)

문제숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오.입력첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다.셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 ..

카테고리 없음 2024.10.05

백준-1541번/잃어버린 괄호 (java)

문제수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다.이런 사실에 놀란 수빈이는 간단한 게임을 만들기로 했다. 두 문자열 S와 T가 주어졌을 때, S를 T로 바꾸는 게임이다. 문자열을 바꿀 때는 다음과 같은 두 가지 연산만 가능하다.문자열의 뒤에 A를 추가한다.문자열을 뒤집고 뒤에 B를 추가한다.주어진 조건을 이용해서 S를 T로 만들 수 있는지 없는지 알아내는 프로그램을 작성하시오. 입력첫째 줄에 S가 둘째 줄에 T가 주어진다. (1 ≤ S의 길이 ≤ 999, 2 ≤ T의 길이 ≤ 1000, S의 길이 출력S를 T로 바꿀 수 있으면 1을 없으면 0을..

알고리즘/백준 2024.10.05

백준-10610번/30 (java)

문제 이해 이 문제를 풀때 가장 중요한 점은 다음 과 같다.1) N는 최대 105개의 숫자로 구성 ==> Int나 Long으로 받을 수 없는 숫자 이므로 문자열로 바꾼후 배열에 숫자로 변환하여 넣어준다.2) 30의 배수가 되기 위한 조건 ==> 1의 자릿수가 0이고 각 자릿수의 합이 3의 배수이다.  문제 해결  숫자를 문자열로 입력받고 정수형 배열에 각 자릿수를 넣어준다.** 문자를 숫자로 바꿀때 ==> 문자의 아스키 코드에서 48을 빼준다. **String N = scanner.nextLine();int[] arr = new int[N.length()];int sum = 0;for(int i=0; i 오름차순 정렬했을때 arr[0]이 0이면 1의 자리숫자가 0이 될 수 있고, 각 자릿수의 합이 3의 ..

알고리즘/백준 2024.10.04