[백준] 17298_오큰수 - JAVA

2023. 5. 2. 22:08·알고리즘/알고리즘 유형
반응형

백준_17298

 

17298번: 오큰수

첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.

www.acmicpc.net

 

스택

참고 포스팅

 

[백준] 1874_스택 수열 - JAVA

백준_1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.

devhan.tistory.com

 

 

코드

import java.io.*;
import java.util.Stack;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.valueOf(br.readLine());
        int[] A = new int[n]; // 수열 생성
        int[] answer = new int[n];  //정답 배열 생성
        String[] str = br.readLine().split(" ");

        for(int i = 0; i < n; i++) {
            A[i] = Integer.valueOf(str[i]);
        }

        Stack<Integer> myStack = new Stack<>();
        myStack.push(0);

        for(int i = 1; i < n; i++) {
            while(!myStack.isEmpty() && A[myStack.peek()] < A[i]) {
                answer[myStack.pop()] = A[i];
            }
            myStack.push(i);
        }
        while(!myStack.empty()) {

            answer[myStack.pop()] = -1;
    }
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        for(int i = 0; i < n; i++) {
            bw.write(answer[i] + " ");
        }
        bw.write("\n");
        bw.flush();
    }
}

이 문제에서 핵심으로 생각할 포인트는 아래와 같다.

- 스택에 새로 들어오는 수가 top에 존재하는 수보다 크면 그 수는 오큰수가 된다.

- 오큰수를 구한 수열에서 오큰수가 존재하지 않는 숫자에 -1을 출력한다.

 

 

제출 결과

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/알고리즘 유형' 카테고리의 다른 글
  • [백준] 1874_스택 수열 - JAVA
  • [백준] 11003_최솟값 찾기 - JAVA
  • [백준] 12891_DNA 비밀번호 - JAVA
  • [백준] 2018_수들의 합5 - JAVA
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    개발자
    방통대
    프론트엔드
    토이프로젝트
    oracle
    토비의스프링부트
    SQL
    자바스크립트
    넥사크로
    에러해결
    SpringBoot를 이용한 RESTful Web Service 개발
    백준
    MSA
    JPA
    코딩테스트
    스프링부트
    IT
    egov
    인프런
    react
    기출문제
    운영체제
    QueryDSL
    Spring
    프로그래머스
    Java
    전자정부프레임워크
    RESTful
    springboot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[백준] 17298_오큰수 - JAVA
상단으로

티스토리툴바