greedy - 숫자 카드 게임

changi123·2024년 3월 2일
0
post-thumbnail

내 코드

import java.util.*;

class Solution {
    public String[] solution(String[] strings, int n) {
 // 숫자 카드 게임
		// 내코드 
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();

		int [] arr = new int[n*m];
		int answer = 0 ;
		ArrayList<Integer> list = new ArrayList();  
		ArrayList<Integer> list2 = new ArrayList();  
		for(int i = 0 ; i < n*m ; i++) {
			arr[i] = sc.nextInt();
			list.add(arr[i]);
			if ( (i+1) % 3 == 0) {
				list.sort(null);
				list2.add(list.get(0));
				list.clear();
			}
		}
		
		list2.sort(null);
		
		answer = list2.get(list2.size()-1);
		System.out.println(answer);


    }
}

코드 설명

(1) 각 행의 한 줄씩 입력받아 배열과 리스트에 넣고 정렬 후 가장 작은 수를 두 번째 리스트에 저장 후 첫 번째 리스트는 초기화 -> 마지막 list2 정렬 후 마지막 가장 큰 수 출력했다.

솔루션 코드

import java.util.*;

class Solution {
    public String[] solution(String[] strings, int n) {
   
		int n = 1260;
		int cnt = 0;
		int[] coinTypes = {500, 100, 50, 10};

		for (int i = 0; i < 4; i++) {
			int coin = coinTypes[i];
			cnt += n / coin;
			n %= coin;
		}

		System.out.println(cnt);

    }
}

코드 리뷰

(1) 2중 포문을 활용하여 각 행의 최소값을 구하고 result 변수에 저장 후 최소값중 가장 큰 값을 출력했다. 2중 포문을 활용해서 하는 것도 알아두자

profile
개발자 홍찬기 꾸준한 사람이 되자

0개의 댓글

관련 채용 정보