본문 바로가기

Java/Java 알고리즘 SWEA

[SW 아카데미] 13218. 조별과제

반응형


  당신은 교수이다. 매주 월요일과 수요일 오전 9시부터 10시 30분까지 진행되는 당신의 수업에는 N명의 수강생이 있다. 당신은 학생들에게 조별과제를 부여하기 위해 학생들을 몇 개의 조로 나누려고 한다.

  당신은 한 조가 2명 이하의 학생으로 구성되면 토론이나 업무 배분 등이 제대로 이루어지지 않아 팀워크를 평가할 기회를 박탈당한다고 생각한다. 따라서, 당신은 3명 이상의 학생으로 구성된 조의 수를 최대화하려고 한다. 각 학생은 정확히 한 개의 조에만 속할 수 있다.

  학생들을 조로 적당히 나누었을 때, 3명 이상의 학생으로 구성된 조의 수의 최댓값이 얼마인지를 구하는 프로그램을 작성하라.

[입력]
  첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
  각 테스트 케이스는 하나의 줄로 이루어진다. 각 줄에는 학생의 수 N (1 ≤ N ≤ 1000)이 주어진다.

[출력]
  각 테스트 케이스마다, N명의 학생들을 조로 적당히 나누었을 때, 3명 이상의 학생으로 구성된 조의 수의 최댓값을 출력한다.

 

입력
3
1
10
100
 
출력
#1 0
#2 3
#3 33
 

import java.util.Scanner;

public class Solution {
	public int[] solution(int n,int[] arr) {
		int [] answer = new int[n];
		for(int i=0;i<n;i++) {
			answer[i]=arr[i]/3;
		}
		return answer;
		
	}
	
	public static void main(String[] args) {
		Solution T =new  Solution();
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		int [] arr = new int [n];
		for(int i=0;i<n;i++) {
			arr[i]=kb.nextInt();
		}
		int i=1;
		for(int x : T.solution(n,arr)) {
			System.out.println("#"+i+++" "+x);
		}
		
		
		
	}

}
반응형