분류 전체보기
-
슬라이딩 윈도우는 창문이 열리듯 같은 범위를 유지하며 한 칸씩 이동하면서 값을 찾는 알고리즘이다. 이 문제는 초기 구간을 설정한 뒤 한 칸씩 이동을 하며 값을 찾으면 되는 문제이다. 0부터 P까지 반복문을 돌며 초기 문자열이 비밀번호에 부합하는지 확인 후 한 칸씩 이동하며 값을 찾아내면 된다. 초기 최소 개수를 설정을 해줄 때에 최소 개수가 0이면 count를 하나씩 증가 시켜줘야 값이 달라지지 않는다. 아래 코드를 보자. import java.util.*; import java.io.*; public class Main { static int count; static int[] myArr; static int[] checkArr; public static void main(String[] args) t..
[백준] 슬라이딩 윈도우 - 12891_DNA 비밀번호 Java[자바]슬라이딩 윈도우는 창문이 열리듯 같은 범위를 유지하며 한 칸씩 이동하면서 값을 찾는 알고리즘이다. 이 문제는 초기 구간을 설정한 뒤 한 칸씩 이동을 하며 값을 찾으면 되는 문제이다. 0부터 P까지 반복문을 돌며 초기 문자열이 비밀번호에 부합하는지 확인 후 한 칸씩 이동하며 값을 찾아내면 된다. 초기 최소 개수를 설정을 해줄 때에 최소 개수가 0이면 count를 하나씩 증가 시켜줘야 값이 달라지지 않는다. 아래 코드를 보자. import java.util.*; import java.io.*; public class Main { static int count; static int[] myArr; static int[] checkArr; public static void main(String[] args) t..
2024.02.04 -
이번 문제는 살짝 헤맸다.. 먼저 어떤 식으로 풀어갈지 생각을 하고나서 풀었어야 했는데 너무 무턱대고 문제부터 풀어서 생각이 잠시 멈췄나보다..ㅎ 어찌어찌 책을 참고하며 풀었다. 일단 이번 문제도 투 포인터 방식으로 푸는 문제였다. 먼저 주어진 숫자를 배열에 넣은 뒤 오름차순 정렬을 해주는 것부터가 시작이다. 그리고 반복문을 돌며 배열에서 하나의 값을 찾아낸 뒤 투 포인터로 두 숫자의 합과 같은 것을 고르면 된다. 여기서 중요한 점은 투 포인터에 해당하는 인덱스가 처음 고른 인덱스와 같으면 서로 다른 두 수의 합이 아니므로 주의해야한다. 필자는 여기서 헤맸다..ㅎㅎ 아래 코드를 한번 보자 import java.io.*; import java.util.*; public class Main { public ..
[백준] 투 포인터 - 1253_좋다 Java[자바]이번 문제는 살짝 헤맸다.. 먼저 어떤 식으로 풀어갈지 생각을 하고나서 풀었어야 했는데 너무 무턱대고 문제부터 풀어서 생각이 잠시 멈췄나보다..ㅎ 어찌어찌 책을 참고하며 풀었다. 일단 이번 문제도 투 포인터 방식으로 푸는 문제였다. 먼저 주어진 숫자를 배열에 넣은 뒤 오름차순 정렬을 해주는 것부터가 시작이다. 그리고 반복문을 돌며 배열에서 하나의 값을 찾아낸 뒤 투 포인터로 두 숫자의 합과 같은 것을 고르면 된다. 여기서 중요한 점은 투 포인터에 해당하는 인덱스가 처음 고른 인덱스와 같으면 서로 다른 두 수의 합이 아니므로 주의해야한다. 필자는 여기서 헤맸다..ㅎㅎ 아래 코드를 한번 보자 import java.io.*; import java.util.*; public class Main { public ..
2024.02.04 -
이번 문제는 투 포인터로 풀면 쉽게 풀 수 있는 문제이다. 먼저 고유한 번호들을 오름차순으로 정렬시킨다. 그 후 처음에 포인트 한 개, 마지막에 포인트 한 개를 두고 그 합을 M과 비교를 하면 된다. start와 end 포인트가 있다고 가정해보자. arr[start] + arr[end] > M 이면 오름차순이므로 end--를 해준다. 그 반대의 경우라면 start++를 해준다. 만약 두 수의 합이 M과 같다면 count++와 함께 start++, end--를 같이 해준다. 아래 코드를 보자. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { Bu..
[백준] 투 포인터 - 1940_주몽 Java[자바]이번 문제는 투 포인터로 풀면 쉽게 풀 수 있는 문제이다. 먼저 고유한 번호들을 오름차순으로 정렬시킨다. 그 후 처음에 포인트 한 개, 마지막에 포인트 한 개를 두고 그 합을 M과 비교를 하면 된다. start와 end 포인트가 있다고 가정해보자. arr[start] + arr[end] > M 이면 오름차순이므로 end--를 해준다. 그 반대의 경우라면 start++를 해준다. 만약 두 수의 합이 M과 같다면 count++와 함께 start++, end--를 같이 해준다. 아래 코드를 보자. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { Bu..
2024.02.02 -
이 문제는 쉽게 풀 수 있는 문제였지만 합 배열을 생각하다보니 좀 헤맸었다. 합 배열로 투 포인터를 사용해보려고 시도를 하다 책을 봤다. 이렇게 쉽게 푼다고...? 싶을 정도로 간단한 풀이방법.. 문제를 잘 보면 연속된 숫자라고는 하지만 단 하나의 숫자만 있어도 정답 처리가 된다,. 따라서 count는 1로 선언한다. 또한 start와 end도 1부터 시작을 해 차근차근 올라간다. start와 end 까지의 합이 N보다 작으면 end를 하나 올려주고 더 크면 start를 하나 올려준다. 만약 N과 같을 경우 count를 하나 올려주고 end를 올려준다. 코드를 보자. import java.io.*; public class Main { public static void main(String[] args) ..
[백준] 투 포인터 - 2018_수들의 합5 Java[자바]이 문제는 쉽게 풀 수 있는 문제였지만 합 배열을 생각하다보니 좀 헤맸었다. 합 배열로 투 포인터를 사용해보려고 시도를 하다 책을 봤다. 이렇게 쉽게 푼다고...? 싶을 정도로 간단한 풀이방법.. 문제를 잘 보면 연속된 숫자라고는 하지만 단 하나의 숫자만 있어도 정답 처리가 된다,. 따라서 count는 1로 선언한다. 또한 start와 end도 1부터 시작을 해 차근차근 올라간다. start와 end 까지의 합이 N보다 작으면 end를 하나 올려주고 더 크면 start를 하나 올려준다. 만약 N과 같을 경우 count를 하나 올려주고 end를 올려준다. 코드를 보자. import java.io.*; public class Main { public static void main(String[] args) ..
2024.02.02 -
C# C#을 사용한 적도, 경험한 적도 없었다. 하지만 금융권 현장에서 사용하는 C#으로 만든 프로그램을 만져볼 기회가 생겨 이렇게 시도해본 후 정리를 한다. 일단 C#을 처음 봤지만 java를 접해봤던 나는 어렵지 않게 시도할 수 있었던 것 같다. 역시 처음이 어려운 법인가...?ㅎ 우선 나는 Visual Studio의 WinForm을 사용했다. 1. 먼저 MySql.Data를 설치해야 한다. 화면 우상단에 있는 솔루션 탐색기를 보면 참조라는 것이 존재한다. 참조에 우클릭 후 NuGet 패키지 관리를 클릭한다. 여기서 MySql.Data를 설치해주면 준비는 끝난다. 2. MySql.Data를 import 해준다. using System; using System.Collections.Generic; us..
C#으로 DB연결 후 데이터 가져오기C# C#을 사용한 적도, 경험한 적도 없었다. 하지만 금융권 현장에서 사용하는 C#으로 만든 프로그램을 만져볼 기회가 생겨 이렇게 시도해본 후 정리를 한다. 일단 C#을 처음 봤지만 java를 접해봤던 나는 어렵지 않게 시도할 수 있었던 것 같다. 역시 처음이 어려운 법인가...?ㅎ 우선 나는 Visual Studio의 WinForm을 사용했다. 1. 먼저 MySql.Data를 설치해야 한다. 화면 우상단에 있는 솔루션 탐색기를 보면 참조라는 것이 존재한다. 참조에 우클릭 후 NuGet 패키지 관리를 클릭한다. 여기서 MySql.Data를 설치해주면 준비는 끝난다. 2. MySql.Data를 import 해준다. using System; using System.Collections.Generic; us..
2024.02.02 -
이번 문제도 합 배열을 이용해 해결해야 하는 문제이다. 합 배열을 구하는 방법은 S[i] = S[i-1] + A[i] 이다. 위 예제를 기준으로 살펴보자. 합 배열은 [1, 3, 6, 7, 9]로 3으로 나눈 나머지의 배열은 [1, 0, 0, 1, 0]이다. S[i] % M = 0이고 S[j] % M = 0이면 (S[i] - S[j]) % M = 0 이다. 따라서 S[i] % M == S[j] % M인 i와 j를 찾으면 되므로 나머지 배열의 같은 값을 가진 인덱스 중에서 2개를 고른 뒤 정답에 추가해 주면 된다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOEx..
[백준] 구간 합 - 10986_나머지 합 구하기 Java[자바]이번 문제도 합 배열을 이용해 해결해야 하는 문제이다. 합 배열을 구하는 방법은 S[i] = S[i-1] + A[i] 이다. 위 예제를 기준으로 살펴보자. 합 배열은 [1, 3, 6, 7, 9]로 3으로 나눈 나머지의 배열은 [1, 0, 0, 1, 0]이다. S[i] % M = 0이고 S[j] % M = 0이면 (S[i] - S[j]) % M = 0 이다. 따라서 S[i] % M == S[j] % M인 i와 j를 찾으면 되므로 나머지 배열의 같은 값을 가진 인덱스 중에서 2개를 고른 뒤 정답에 추가해 주면 된다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOEx..
2024.01.31 -
바로 전 문제와 마찬가지로 구간합을 이용하면 풀 수 있는 문제이다. 다만, 구간 합을 구하는 방법이 전과는 달라졌다. 먼저 A[2,2] 까지의 합을 구하는 방법을 생각해보면 S[1,2] + S[2,1] - S[1,1] + A[2,2]로 나타낼 수 있다. 이것으로 보아 합 배열을 나타내는 표현식은 S[i,j] = S[i - 1, j] + S[i, j - 1] - S[i - 1, j - 1] + A[i, j] 이다. 위에 나온 예제를 활용하여 [2,2]부터 [3,4]까지의 합을 구해보면 S[3,4] - S[3,1] - S[1, 4] + S[1, 1]으로 표현이 가능하다. 이제 공식으로 변환을 하면 [x1, y1] 부터 [x2, y2] 까지의 합은 S[x2, y2] - S[x2, y1-1] - S[x1-1, ..
[백준] 구간 합 - 11660_구간 합 구하기 Java[자바]바로 전 문제와 마찬가지로 구간합을 이용하면 풀 수 있는 문제이다. 다만, 구간 합을 구하는 방법이 전과는 달라졌다. 먼저 A[2,2] 까지의 합을 구하는 방법을 생각해보면 S[1,2] + S[2,1] - S[1,1] + A[2,2]로 나타낼 수 있다. 이것으로 보아 합 배열을 나타내는 표현식은 S[i,j] = S[i - 1, j] + S[i, j - 1] - S[i - 1, j - 1] + A[i, j] 이다. 위에 나온 예제를 활용하여 [2,2]부터 [3,4]까지의 합을 구해보면 S[3,4] - S[3,1] - S[1, 4] + S[1, 1]으로 표현이 가능하다. 이제 공식으로 변환을 하면 [x1, y1] 부터 [x2, y2] 까지의 합은 S[x2, y2] - S[x2, y1-1] - S[x1-1, ..
2024.01.31 -
구간의 합을 구하는 문제이다. 이렇게 구간의 합을 구하는 문제는 반복문을 계속 돌리게 되면 시간을 더욱 낭비하게 된다. 이러한 문제는 구간 합 배열을 선언해준뒤 적용하여 문제를 풀 수 있다. 구간 합 배열은 i번째 인덱스에 있는 값이 i번째 전의 모든 인덱스에 해당하는 값에 i번째 인덱스에 해당하는 값을 넣는 것. 선언하는 방식 ==> S[ i ] = S[ i - 1 ] + A [ i ] 위의 합 배열만 잘 활용하면 무난하게 풀 수 있는 문제이다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buf..
[백준] 구간 합 - 11659_구간 합 구하기 Java[자바]구간의 합을 구하는 문제이다. 이렇게 구간의 합을 구하는 문제는 반복문을 계속 돌리게 되면 시간을 더욱 낭비하게 된다. 이러한 문제는 구간 합 배열을 선언해준뒤 적용하여 문제를 풀 수 있다. 구간 합 배열은 i번째 인덱스에 있는 값이 i번째 전의 모든 인덱스에 해당하는 값에 i번째 인덱스에 해당하는 값을 넣는 것. 선언하는 방식 ==> S[ i ] = S[ i - 1 ] + A [ i ] 위의 합 배열만 잘 활용하면 무난하게 풀 수 있는 문제이다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buf..
2024.01.31