Gold IV
-
이번 문제는 스택을 사용하는 문제이다. 스택에 인덱스를 넣어주며 활용을 하면 되는데 예시를 들어서 설명을 하면 편할 것 같다. 3 2 5 8 이라는 배열이 있다고 하자. 스택에 먼저 첫 인덱스인 0을 넣어준다. stack.push(0) 그 후 반복문을 돌며 해당 인덱스에 해당하는 값보다 더 큰 값을 찾으면 된다. arr[stack.peek()] == arr[0] == 3 이고 저 값보다 더 큰 값을 가지는 것은 arr[1] == 5이다. while(arr[stack.peek()] < arr[i]) { result[stack.pop()] = arr[i] } 로 표현할 수 있는데 배열을 하나하나 조사하며 해당 값보다 더 큰 값이 나오면 해당 값까지의 오큰수를 모두 arr[i]로 설정하는 것이다. 아래 자세한..
[백준] 스택, 큐 - 17298_오큰수 Java[자바]이번 문제는 스택을 사용하는 문제이다. 스택에 인덱스를 넣어주며 활용을 하면 되는데 예시를 들어서 설명을 하면 편할 것 같다. 3 2 5 8 이라는 배열이 있다고 하자. 스택에 먼저 첫 인덱스인 0을 넣어준다. stack.push(0) 그 후 반복문을 돌며 해당 인덱스에 해당하는 값보다 더 큰 값을 찾으면 된다. arr[stack.peek()] == arr[0] == 3 이고 저 값보다 더 큰 값을 가지는 것은 arr[1] == 5이다. while(arr[stack.peek()] < arr[i]) { result[stack.pop()] = arr[i] } 로 표현할 수 있는데 배열을 하나하나 조사하며 해당 값보다 더 큰 값이 나오면 해당 값까지의 오큰수를 모두 arr[i]로 설정하는 것이다. 아래 자세한..
2024.02.07 -
이번 문제는 살짝 헤맸다.. 먼저 어떤 식으로 풀어갈지 생각을 하고나서 풀었어야 했는데 너무 무턱대고 문제부터 풀어서 생각이 잠시 멈췄나보다..ㅎ 어찌어찌 책을 참고하며 풀었다. 일단 이번 문제도 투 포인터 방식으로 푸는 문제였다. 먼저 주어진 숫자를 배열에 넣은 뒤 오름차순 정렬을 해주는 것부터가 시작이다. 그리고 반복문을 돌며 배열에서 하나의 값을 찾아낸 뒤 투 포인터로 두 숫자의 합과 같은 것을 고르면 된다. 여기서 중요한 점은 투 포인터에 해당하는 인덱스가 처음 고른 인덱스와 같으면 서로 다른 두 수의 합이 아니므로 주의해야한다. 필자는 여기서 헤맸다..ㅎㅎ 아래 코드를 한번 보자 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