SWEA

[SWEA] 식료품 가게

itsnot4me 2024. 10. 29. 03:39

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AYxCRFA6iiEDFASu&categoryId=AYxCRFA6iiEDFASu&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

import java.util.Scanner;
import java.io.FileInputStream;
import java.util.ArrayList;
{
	public static void main(String args[]) throws Exception
	{
		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();
		for(int test_case = 1; test_case <= T; test_case++)
		{
			int originalNumbers = sc.nextInt();
            ArrayList<Integer> allNumbers = new ArrayList<Integer>();
            ArrayList<Integer> miniNumbers= new ArrayList<Integer>();
            for(int i=0; i<originalNumbers*2; i++){
                allNumbers.add(sc.nextInt());
            }
            for(int k=0; k<originalNumbers; k++){
                for(int j=0; j<allNumbers.size(); j++){
                    if((allNumbers.get(0)/3)*4==allNumbers.get(j)){
                       miniNumbers.add(allNumbers.get(0));
                       allNumbers.remove(0);
                       allNumbers.remove(j-1);        
                        break;
                    }
                }
            }
            System.out.print("#" + test_case + " ");
            for(int m=0; m<miniNumbers.size(); m++){
                 if(m==miniNumbers.size()-1){
                     System.out.print(miniNumbers.get(m));
                     break;
                 }
                System.out.print(miniNumbers.get(m) + " ");
            }
            System.out.println();
      }
	}
}

 

새벽에 한문제 풀고 자고 싶다는 심정으로 풀었고, 조건상 자동 오름차순을 제시해 주는 점이 편리하고 한편 입력값 조건도 정해져 있기 때문에 따로 뭘 검증할 필요는 없다.. 

 

 지난 문제는 배운게 있어 메서드 분리를 했고 그래도 이번 주 배운게 있으니 그냥 배열 쓰기보다는 리스트를 써서 풀어보는걸로, 0부터 리스트 끝까지 할인가와 매칭되는 원가 찾고 할인가를 다른 리스트에 입력하고 원가 할인가 지우고, 리스트 다시 쭉 훑어서 찾고..

 

 만약 이런걸 만들어라~ 하면 예외 처리할 경우가 많을 것 같다는 생각과 함께 마무리