SSAFY/SWEA

[SWEA] 13038 : 교환학생

믕비 2023. 5. 13. 16:09
반응형

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

 

SW Expert Academy

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

swexpertacademy.com

수업이 시작하는 요일에 따라 필요한 수업일수가 달라지기 때문에 각 요일을 시작일로한 최소일수를 구해 최솟값을 답으로 출력하였음.

 

내 코드

메모리 : 20100 KB

시간 : 231 ms

코드길이 : 1109 B

 

[내 코드]

package D3;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Q13038 {
	static int[] a = new int[7];
	static int n, result;

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		int T = Integer.parseInt(br.readLine());
		for(int t = 1; t <= T; t++) {
			sb.append('#').append(t).append(' ');
			n = Integer.parseInt(br.readLine());
			st = new StringTokenizer(br.readLine());
			for(int i = 0; i < 7; i++) {
				a[i] = Integer.parseInt(st.nextToken());
			}
			result = Integer.MAX_VALUE;
			for(int i = 0; i < 7; i++) {
				result = Math.min(result, study(i));
			}
			sb.append(result).append('\n');
		}
		System.out.print(sb);
	}
	static int study(int startDay) {
		int studyDay = 0; //목표일수
		int day = 0; //필요일수
		int index = startDay;
		while(studyDay != n) {
			++day;
			studyDay += a[index];
			++index;
			if(index == 7)
				index = 0;
		}
		return day;
	}
}

 

반응형