Algorithm/백준 알고리즘

백준_3060 욕심쟁이 돼지(자바) / 시뮬레이션

미스터로즈 2021. 12. 1. 10:36

시간&메모리 제한

 

문제풀이

 

입력&출력

 

문제풀이

package com.Back;

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

public class Back_3060 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int testCase = Integer.parseInt(br.readLine());
		
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();
		for (int tc = 0; tc < testCase; tc++) {
			int N = Integer.parseInt(br.readLine());
			int ans = 1;
			int sum = 0;
			
			st = new StringTokenizer(br.readLine());
			
			for (int i = 0; i < 6; i++) {
				sum+=Integer.parseInt(st.nextToken());
			}
			
			while(sum<=N) {
				sum*=4;
				ans++;
			}
			sb.append(ans+"\n");
		}
		System.out.println(sb);
	}
}

 

※ 내 생각

이 문제는 시뮬레이션으로 푸는 문제입니다.

먼저 테스트케이스 수를 받아 오고 그 수 만큼 for문을 돌립니다.
for문을 통해 각각의 수를 sum으로 받고, 모든 돼지들이 양 옆, 본인, 맞은편을 더하기 때문에
기존의 값에 4배가 됩니다.

4배 한 값이 사료의 값보다 작을 때까지 for문을 돌려서 해결해 줍니다.