본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1277 : 몇 번째 데이터 출력하기

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1277 : 몇 번째 데이터 출력하기 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

입력으로 N이 주어지고 그 다음줄에 N개의 데이터가 공백으로 구분되어 입력된다.(단, N>=1인 홀수)

출력

첫번째, 중간, 마지막 데이터 값을 출력한다.

예시

  • 입력 :
    7
    2 4 7 3 1 2 5
  • 출력 : 2 3 5

Solution (풀이)

  • 풀이 1 : 메모리 11216, 시간 64
public class Answer1 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int count = 0;
        Map<Object, Object> map = new HashMap<Object, Object>();
        // 첫줄에 입력받은 숫자만큼 for문 반복
        for (int i=1; i<=n; i++) {
            // 몇개인지 새어준다.
            count++;
            // 선언해 놓은 map에 입력 받을 때 마다 넣어준다.
            map.put(i, st.nextToken());
        }

        StringBuilder sb = new StringBuilder();
        // map에서 꺼내어 append해준다. (홀수임으로 +1해주어야 한다.)
        sb.append(map.get(1)+" ").append(map.get(count/2+1)+" ").append(map.get(count));
        System.out.println(sb);
        br.close();
    }
}
  • 풀이 2 : 메모리 11148, 시간 87
public class Answer2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 몇개를 입력받을지 받지만 쓰이지 않는다.
        br.readLine();
        // 공백을 기준으로 split() 메소드를 이용하여 배열 형태로 만들어 준다.
        String[] numbers = br.readLine().split(" ");

        // 배열의 길이를 찾아서 선언해준다.
        int length = numbers.length;

        StringBuilder sb = new StringBuilder();

        // 배열에서 각 자리에 맞게 꺼내어 append해준다. 
        sb.append(numbers[0]+" ").append(numbers[length/2]+" ").append(numbers[length-1]);
        System.out.println(sb);
        br.close();
    }
}

Ranking(순위)

반응형