문제https://www.acmicpc.net/problem/6219 접근 방법소수를 먼저 B범위 만큼 구해주고, 소수 안에서 D가 포함되어있는지 찾으면 되는 문제이다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static StringTokenizer st; private static int A,B; private static Strin..
문제https://www.acmicpc.net/problem/15996 접근 방법N이 팩토리얼로 주어졌을때 A로 최대 몇승까지 나눌수 있는지에 대한 문제이다.간단하게 N/A + N/(A*A) ...형식으로 K를 구할 수 있다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static StringTokenizer st; private static long N,A; private stat..
문제https://www.acmicpc.net/problem/9417 접근 방법정수 M이 주어졌을때 모든 두 쌍 중에서 가장 큰 최대공약수를 찾는 문제이다.M이 최대 99이므로 2쌍을 찾을때 완탐을 해도 N*10000의 경우의 수보다 작다.유클리드 호제 방법으로 문제를 쉽게 풀 수 있었다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedRead..
인터넷에서 네트워크를 공부하다 보면 항상 TCP/IP라고 말하는데 분명 다른 개념인데 왜 이렇게 말하는걸까? 라고 생각해본적이 있다. 그래서 확실하게 개념을 잡고자 정리를 해보았다. 📌 OSI 7계층OSI 모델은 네트워크에서 일어나는 통신을 7개의 계층으로 나눈 참조 모델이다. 이는 네트워크 프로토콜 설계 및 개발에 표준을 제공하기 위해 만들어졌다. 그럼 어떻게 OSI 7 계층이 만들어졌을까?네트워크의 시작 : 먼저 서로 다른 컴퓨터 사이에 정보를 주고 받을 수 있었다. 프로토콜의 발전 : 그러면서 자연스럽게 여러 회사에서 각각의 프로토콜(규칙)을 개발하게 되었다. -> 이때 통일된 규정이 없어 문제가 발생하였다. 서로 다른 언어들을 사용한다면 컴퓨터와 컴퓨터간 정보를 알아 들을 수 없게 되었다.표준의..
문제https://www.acmicpc.net/problem/1990 접근 방법문제에 나와있는대로 소수이면서 팰린드롬을 찾는 문제이다.그러면 먼저 소수를 찾아서 배열을 만들어 주고, A ~ B까지 순환하면서 그 수가 소수인지, 만약 소수이면 팰린드롬 검사를 해줘서 맞으면 모두 저장한다.그리고 마지막은 -1을 저장한다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; p..
문제https://www.acmicpc.net/problem/23888 접근 방법첫째줄에 A : 첫항, D : 공차둘째줄에 쿼리 갯수(테스트케이스 갯수)셋째줄에 1 L R 또는 2 L R 값으로 첫번째 값이 1이면 L~R 까지 등차수열의 합을 ,2이면 L~R까지 의 최대공약수를 구하는 문제이다.따라서 등차수열의 합은 공식을 이용해서 N*{(2A+(N-1)D}/2, 최대공약수는 유클리드 호제법을 이용하여 구한다. 그리고 2번째에서는 L과 R이 필요가 없는게 A와 A+d, ... A+(N-1)d로 이루어져있기 때문에 첫항과 둘째항의 최대공약수나 둘째나 셋째의 최대공약수나, 셋째나 넷째의 최대공약수나 다 똑같다.(유클리드 호제) 코드import java.io.BufferedReader;import java...
문제https://www.acmicpc.net/problem/1407 접근 방법상당히 애를 먹었던 문제였다. f(n) 정의가 주어지고 a b 자연수가 주어졌을때 f(a)~f(b)를 구하는 문제이다.먼저 2로 한번도 나눌수 없는 개수를 더하고2로 나누어지지만 단 한번만 나누어지는 갯수, 2^2로 나누어지지만 단 한번만 나누어지는 갯수, 2^3...2^4 로나누어지지만 단 한번만 나누어지는 갯수를 더해주었다.아마 위의 접근 방법만 보면 이해가 안될것이다. 예를들어서 먼저 B값이 10 이라고 가정을 해보자. 2번 과정을 해보면10개중 2로 나누어지지 않는 값은 n/2 = 5 개가 될 것이다.f(1) = 2^0f(2) = 2^1 f(3) = 2^0 f(4) = 2^2 f(5) = 2^0 f(6) = 2^1 f..
들어가기 앞서 쿠키와 세션을 사용하는 이유에 대해서 먼저 생각해보자. HTTP 프로토콜은 비연결성, 무상태성이라는 특징을 갖는다.비연결성(Connectionless) : 클라이언트가 서버에 요청을 보냈을때(Request), 그에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리방식이다.무상태성(Stateless) : 연결을 끊는 순간 서버의 통신이 끝나며 상태 정보는 유지하지 않는다.따라서 클라이언트와 서버가 통신을 할 때 서버는 클라이언트가 누구인지 계속 인증을 해주어야 한다. 예를들어 로그인을 하고 마이페이지를 가고 싶지만, 정보가 유지되지 않아서 다시 로그인을 해야하고, 장바구니를 가려고 해도 로그인을 해야한다. 이처럼 매번 요청을 보낼때마다 로그인을 하면 굉장히 불편할 것이다. 그런 불편함..
문제https://www.acmicpc.net/problem/2436 접근 방법최대공약수와 최소공배수가 주어지고, 최대공약수를 만족하는 두 수, 최소공배수를 만족하는 두 수를 구하는 문제이다.따라서 두 수 (A,B) / 최대공약수 = 최소공배수 이므로 A * B = 최대공약수 * 최소공배수이다.최대공약수의 배수를 탐색하며 조건에 맞게 a와 b를 찾아줍니다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static BufferedReader br; private static StringTokenizer st; p..
문제https://www.acmicpc.net/problem/2725 접근 방법(x,y) 점이 주어졌을 때 0,0 에서 보이는 점의 개수를 구하는 문제입니다.예를들어 (1,1), (2,2), (3,3) 이렇게 3개의 좌표는 같은 선분이므로 보이지 않습니다.따라서 기울기가 겹치지 않는 (기울기의 최대공약수가 1인 선분) 값을 찾아서 두개씩(좌표를 대각선으로 잘랐을때 겹치므로) 더해주면 됩니다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static Buffer..