해결된 질문
작성
·
286
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
안녕하세요! 네 모든 문제에 대한 해석과 풀이등은 다 다를 수 있고 구현방식도 당연히 다를 수 있기 때문에 당연히 되실 것 같습니다!! 실제 해당 방식으로 풀어내셔도 정답이 되는 것으로 보입니다. ^-^
좋은하루 되세요 ~