백준 종이접기 1802 1802번: 종이 접기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 1000보다 작거나 같은 자연수이다. 둘째 줄부터 T개의 줄에 각각의 종이가 어떻게 접혀있는지가 주어진다. 종이의 정보는 문자열로 주어지며, 1 www.acmicpc.net 문제 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class boj1802 { public void solution() throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); i..
JWT - Json Web Token JSON으로 표현된 정보를 안전하게 주고 받기 위한 Token의 일종이다. (여기서의 토큰은 신분증에 가깝다. 이 토큰에 사용자는 누구이며, 발급일 만료일 나오고, 언제 로그인했는지까지 나오게 됩니다. ) JWT 내부에 서비스를 사용하기 위한 인증정보가 담기며, JWT를 받은 서비스는 JWT가 위변조가 되었는지 알아차릴 수 있기 때문에 Token 기반의 인증 시스템에서 많이 활용됩니다. JWT 특징 사용자 확인을 위한 인증 정보 위변조 확인이 용이 → 위변조가 어려움 토큰 기반 인증 시스템에서 많이 활용 기본적으로 JWT는 세부분으로 나뉘어져 만들어집니다. header.payload.signature header.payload.signature header : JWT..
JWT - Json Web Token JSON으로 표현된 정보를 안전하게 주고 받기 위한 Token의 일종이다. (여기서의 토큰은 신분증에 가깝다. 이 토큰에 사용자는 누구이며, 발급일 만료일 나오고, 언제 로그인했는지까지 나오게 됩니다. ) JWT 내부에 서비스를 사용하기 위한 인증정보가 담기며, JWT를 받은 서비스는 JWT가 위변조가 되었는지 알아차릴 수 있기 때문에 Token 기반의 인증 시스템에서 많이 활용됩니다. JWT 특징 사용자 확인을 위한 인증 정보 위변조 확인이 용이 → 위변조가 어려움 토큰 기반 인증 시스템에서 많이 활용 기본적으로 JWT는 세부분으로 나뉘어져 만들어집니다. header.payload.signature header.payload.signature header : JWT..
병합 정렬 (Merge Sort) 병합 정렬이란? 분할 정복 기법을 활용한 대표적인 정렬 알고리즘입니다. 정렬되지 않은 배열이 있을 때, 배열을 두개의 동일한 크기의 배열로 나눕니다. 각 배열에 원소가 하나가 남을 때까지 반복합니다. 나눠진 배열을 2개씩 정렬하면서 하나의 배열로 병합합니다. import java.util.Arrays; public class MergeSort { public void sort(int[] arr) { // 배열이 비어있거나 길이가 1이라면 정렬할 필요가 없다. if (arr == null || arr.length
분할정복 (또는 분할 통치) 피지배민을 분열시켜 통치에 용이하게 하는 방법 군을 분열시켜 각개격파하는 방법 분할 정복 알고리즘 - 큰 문제를 나누어서 풀고, 그 결과를 조합해서 문제를 해결하는 알고리즘 기법 알고리즘 기법 분할(Divide) : 해결할 문제를 여러개의 작은 문제로 나눈다. 정복(Conquer) : 작은 단위의 문제를 해결한다. 조합(Merge or Combine) : 해결한 작은 단위 문제들을 합해 원래 문제의 답을 구한다. 일반적으로 각 하위 문제들이 독립적으로 풀이가 가능한 형태로서, 하위 문제의 결과가 상위 문제의 풀이 방식에 영향을 주지 않을 때 분할 정복 알고리즘이라 이야기합니다. 그 특성상 분할 정복 알고리즘은 재귀함수를 이용해 풀이하는 경우가 많습니다. 하노이의 탑 알고리즘 ..
13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 💡 움직이면서 주유하는 시뮬레이션이 아닌, 어떻게 주유하면 최소비용으로 이동할지를 판단하는 문제입니다. 출발하고자 하는 도시보다 기름값이 더 싼 도시가 나올때까지만 이동하기를 반복하는 탐욕적 방법으로 답을 구할 수 있습니다. 주의할점은 입력 조건의 크기가 매우 크기 때문에, int 자료형을 사용하면 서브테스크 3번을 틀리게됩니다. 이 경우 long 을 사용하면 문제없이 답을 구할 수 있습니다. import java.io.BufferedReader; ..