• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

스택문제 백준 1874

24.03.19 23:27 작성 조회수 90

1

강의내용의 코드가 헷갈려서 아래내용대로 수정해보았는데 이렇게 해도 될까요 ?

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int N = sc.nextInt(); // 수열의 개수

int A[] = new int[N]; // 수열을 저장할 배열

// 데이터 입력

for (int i = 0; i < N; i++) {

A[i] = sc.nextInt();

}

 

Stack<Integer> stack = new Stack<>();

StringBuffer bf = new StringBuffer(); // 연산 출력 저장

 

int num = 1;

for (int i = 0; i < N; i++) {

int su = A[i];

while (su >= num) { // 현재 수가 스택의 수와 같거나 큰 경우

stack.push(num++);

bf.append("+\n");

}

if (stack.isEmpty() || stack.peek() != su) {

System.out.println("NO");

return;

}

stack.pop();

bf.append("-\n");

}

 

System.out.println(bf.toString()); // 결과 출력

}

}

답변 1

답변을 작성해보세요.

0

안녕하세요! 네 모든 문제에 대한 해석과 풀이등은 다 다를 수 있고 구현방식도 당연히 다를 수 있기 때문에 당연히 되실 것 같습니다!! 실제 해당 방식으로 풀어내셔도 정답이 되는 것으로 보입니다. ^-^

좋은하루 되세요 ~