
Scanner가 아닌 BufferedReader , BufferedWriter의 연습StringTokenizer의 사용https://www.acmicpc.net/problem/11022StringTokenizer는 자바에서 문자열을 구분자를 기준으로 쉽게 나누

https://www.acmicpc.net/problem/15829문제 자체는 어렵지 않았지만int형 데이터를 초과하기 때문에 long이나 BigInteger를 사용하는것이 관건이다.

https://www.acmicpc.net/problem/2609최대 공약수(GCD, Greatest Common Divisor)는 두 정수의 공통된 약수 중 가장 큰 값을 의미한다. 유클리드 호제법은 두 수의 최대 공약수를 효율적으로 구하는 방법 중 하나로,

대표적인 그리디 문제이다.동전의 개수가 최소가 되기 위해서는 최대한 5원을 많이 줘야한다.하지만 5원을 주고 남은 거스름돈이 없거나 2로 나누어져야한다.그래도 나누어지지 않는다면 -1을 출력한다.5를 먼저 해결해야하는데 5를 나눈 나머지로 해결하려하면 13같은 수가 해

문제의 예로 만약 3일동안 주식의 가격이 10,7,6이라면 사지않는것이 가장 큰 이득이고 3,5,9 라면 3과 5에 한주씩 사면 총 10의 이득이 나온다1,1,3,1,2 라면 1일때 주식을 사면 2+2+1로 총 5의 이득을 볼 수 있다.이처럼 순간순간에 주식을 살지 말

우리가 흔히 아는 체스판 처럼 ⬜과 ⬛이 번갈아 있는 8x8판을 만들어야한다.첫칸의 색에 따라서 경우가 두개로 나뉜다8x8 크기로 잘라 2가지의 경우를 모두 확인 -> 자를 수 있을만큼 반복주어지는 길이는 8보다 무조건 크기 때문에 가로, 세로 움직일 수 있는 범위를

숫자 N이 주어지면 1~N까지의 번호가 적힌 카드가 있다.제일 위에(작은) 카드를 버리고 그 다음 카드를 맨 밑으로 놓는다카드 한개가 나올때까지 반복한다. 남은 카드를 출력한다.숫자 카드가 들어온곳으로 나가기 때문에(작은수부터) Queue의 문제다.처음 숫자를 지워버리

문자열이 주어지도 () \[] 가 짝을 이뤄야한다.)( 순으로 입력되면 짝을 이룰 수 없다.종료 조건이 "." 이다.괄호는 전형적인 Stack 문제다.\-'(' 가 들어오면 stack에 저장하고 ')'가 입력되면 제일 앞의 것을 꺼낸다.꺼낸 것이 '('와 같으면 짝을

문제에 대한 난이도가 여러개 주어진다.하나 이상이라면 절사평균을 사용한다. 투표수의 15%만큼 제일 작은 수와 큰 수를 제외한 평균제외된 난이도 평가만을 가지고 평균을 낸다. 평균은 반올림한다.정렬과 반올림의 문제이다.배열로 입력되는 난이도 평가를 받은 후에 배열 길이

📋문제 정리 버섯이 10개가 주어지고 차례로 먹을 수 있다. 점수의 합이 100이랑 가장 가까울때 점수를 출력한다 🎯풀이 연속되는 구간의 합을 이용하는 문제이다. 차례대로 더한 누적 합 배열을 이용한다. 누적 합 배열을 순회하면서 100을 뺀 값에 대해서 절대값

2차원 배열이 주어졌을때 ( i , j ) 부터 ( x , y )의 합을 구하라.브루트 포스로 배열을 돌면서 풀면 되는거 같지만 주어진 범위를 보면 시간 초과가 난다.2차원 배열의 누적 합으로 문제를 풀면 된다.2차원 배열을 입력받아 누적 합 배열을 만든다.좌표들을 입

숫자로만 이루어진 문자열의 부분 문자열이 짝수고 절반의 앞과 뒤의 합이 같으면 크리 문자열이다.6789 6789 / 6 789 789 이런식으로 되어있는데 가장 길이가 긴 크리 문자열의 길이를 출력하라. 크리 문자열이기 위해서는 무조건 답은 짝수로 나와야한다. 2/4/

주어진 정수들의 다른 위치의 두 수를 뽑아 곱셉의 합을 구해라.2,3,4가 주어지면 2,3 / 2,4 / 3,4 들의 곱의 합을 구하면 된다.언뜻보면 조합처럼 보이지만 중복된 수가 들어가기 때문에 될 수 없다.결국 식을 생각해보면 x1,x2,x3일때 x1x2 + x1x

2차원 배열에 좌표 두개와 값이 주어지는데 그 좌표 사이에 주어진 값을 더한다.그렇게 수정된 2차원 배열의 각 행과 열의 합을 구하는 문제이다.2차원배열을 초기화하면서 행과 열의 배열을 생성하여 같이 초기화한다.r1, c1 / r2, c2가 주어지면 각 행과 열의 좌표

입력받은 N이 연속되는 자연수의 합으로 표현되는지 경우의수를 구하라연속되는 자연수의 합이니까 N이하의 숫자로만 이루어져있다.N이하의 숫자를 사용하고 두개의 포인터 start,end를 0에 위치한다.포인터 사이의 숫자를 더하여 N보다 작으면 end 크면 start를 증가

배열을 입력받아 배열의 두 숫자의 합이 M인 경우의 수를 구해라두 포인터 사이의 숫자를 구하는게 아닌 포인터의 숫자의 합을 구하면된다.L포인터는 0 , R포인터는 n-1부터 시작한다.둘의 합이 m보다 크면 R-- , 작으면 L++를 하면된다.L이 R이상이 됐을때 종료한

배열을 입력받아 5연속된 숫자를 만들기 위한 최소 갯수를 출력하라배열을 입력받은 후 오름차순으로 정렬한다.최대 4개가 필요하기 때문에 start,end는 0 cnt 4로 초기화시킨다.end의 값과 start의 값이 5보다 작으면 end를 증가시킨다.증가시킨후 end-s

n개의 자연수 배열의 특정 구간이 K보다 큰 모든 쌍을 구해라.숫자의 배열을 생성 및 초기화하고 start,end,sum을 0으로 초기화한다.sum이 K보다 크면 end 이후로 남은 갯수(전부다 K보다 큼)를 전부 cnt로 더하고 현재 start를 빼고 start++를

주어진 행렬에서 연속된 K개의 0이 있는 구간의 개수를 찾아라주어진 행렬에 줄마다 k만큼의 구간을 끝까지 확인하는 방법. 슬라이딩 윈도우행렬을 저장한 후 행렬의 값이 1일때 +1 되는 window변수를 생성한다.각 행이 시작될때 k만큼 보며 1일때 window++를 실

# 📋문제 정리 - 0,0 에서 칸에 적힌 숫자만큼 아래 혹은 오른쪽으로 이동하여 마지막 칸까지 이동한다. - 마지막 칸에 도착할 수 있다면 HaruHaru 없다면 Hing 출력

a를 연산 1을 하거나 연산 2를해서 k로 만들기 위한 최소 연산 횟수를 구해라