새소식

코딩테스트

[코드트리 조별과제] 정수 명령 처리 5

  • -

https://www.codetree.ai/missions/6/problems/process-numeric-commands-5?&utm_source=clipboard&utm_medium=text

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

문제

 

 

풀이과정

  1. 각각의 명령어와 입력값이 한줄로 주어짐 -> 공백을 기준으로 나누기
  2. 각각의 명령어마다 다른 동작을 해야함 -> 명령어가 여러개이므로 if문 보다는 switch가 가독성과 유지보수 측면에서 더 나을 것이라 판단.
  3. parts[]는 크키가 1또는 2로 고정되어 있으므로 배열을 사용하고, 각각의 명령어에 따른 결과를 저장할 리스트는 동적으로 크기가 변해야하므로 ArrayList가 적절하다고 판단

 

나의 풀이

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int count = sc.nextInt();
        sc.nextLine();

        List<Integer> list = new ArrayList<>();

        for(int i = 0; i < count; i++){
            String line = sc.nextLine();
            String[] parts = line.split(" ");

            switch (parts[0]){
                case "push_back":
                    int target = Integer.parseInt(parts[1]);
                    list.add(target);
                    break;
                case "pop_back":
                    list.remove(list.size()-1);
                    break;
                case "get":
                    int index = Integer.parseInt(parts[1]);
                    System.out.println(list.get(index-1)); //k번째 숫자를 출력
                    break;
                case "size":
                    System.out.println(list.size());
                    break;
            }
        }
    }
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.