인프런 커뮤니티 질문&답변

Yunny J님의 프로필 이미지
Yunny J

작성한 질문수

Do it! 알고리즘 코딩테스트 with JAVA

[스택과 큐 실전 문제] 스택으로 수열 만들기 (백준 1874)

스택문제 백준 1874

해결된 질문

작성

·

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

하루코딩님의 프로필 이미지
하루코딩
지식공유자

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

좋은하루 되세요 ~

Yunny J님의 프로필 이미지
Yunny J

작성한 질문수

질문하기