투 포인터
-
이번 문제는 살짝 헤맸다.. 먼저 어떤 식으로 풀어갈지 생각을 하고나서 풀었어야 했는데 너무 무턱대고 문제부터 풀어서 생각이 잠시 멈췄나보다..ㅎ 어찌어찌 책을 참고하며 풀었다. 일단 이번 문제도 투 포인터 방식으로 푸는 문제였다. 먼저 주어진 숫자를 배열에 넣은 뒤 오름차순 정렬을 해주는 것부터가 시작이다. 그리고 반복문을 돌며 배열에서 하나의 값을 찾아낸 뒤 투 포인터로 두 숫자의 합과 같은 것을 고르면 된다. 여기서 중요한 점은 투 포인터에 해당하는 인덱스가 처음 고른 인덱스와 같으면 서로 다른 두 수의 합이 아니므로 주의해야한다. 필자는 여기서 헤맸다..ㅎㅎ 아래 코드를 한번 보자 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