๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 3060_์š•์‹ฌ์Ÿ์ด ๋ผ์ง€

๋ฟŒ์•ผ._. 2024. 4. 10. 15:54

Silver V

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/3060)

< ์š•์‹ฌ์Ÿ์ด ๋ผ์ง€ >

 

๋ฌธ์ œ ํ’€์ด 

 

์ฒซ ๋‚ ์—๋Š” 1+2+3+4+5+6 ๋งŒํผ ์‚ฌ๋ฃŒ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

๋‹ค์Œ๋‚ ์€ (1+4+6+2) + (2+5+1+3) + (3+6+2+4) + (4+1+3+5) + (5+2+6+4) + (6+3+1+5) ๋งŒํผ ์‚ฌ๋ฃŒ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

๋งค๋ฒˆ ์ด๋ ‡๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ทœ์น™์„ ์ฐพ์•„๋ณด๋‹ˆ

 

์ฒซ ๋‚  1๋ฒˆ +2๋ฒˆ +3๋ฒˆ +4๋ฒˆ +5๋ฒˆ +6๋ฒˆ

๋‹ค์Œ๋‚  1๋ฒˆ*4 + 2๋ฒˆ*4 + 3๋ฒˆ*4 + 4๋ฒˆ*4 + 5๋ฒˆ*4 + 6๋ฒˆ*4 ์ด๋‹ค.

 

๊ฐ ์‚ฌ๋ฃŒ๋ฅผ ๊ณ„์†ํ•ด์„œ 4๋ฐฐ์”ฉ ํ•œ ๋‹ค์Œ ํ•ฉ์„ ๊ตฌํ•˜๋ฉด ํ•˜๋ฃจ์— ํ•„์š”ํ•œ ์‚ฌ๋ฃŒ ์–‘์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 my solution (Java)

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

public class _3060_ { // ์š•์‹ฌ์Ÿ์ด ๋ผ์ง€

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		int t = Integer.parseInt(bf.readLine());

		int arr[] = new int[6];
		int sum = 0;
		for (int i = 0; i < t; i++) {
			int n = Integer.parseInt(bf.readLine());

			int day = 1;
			st = new StringTokenizer(bf.readLine());
			for (int j = 0; j < 6; j++) {
				arr[j] = Integer.parseInt(st.nextToken());
				sum += arr[j];
			}

			while (true) {
				if (n - sum == 0) {
					bw.write((day + 1) + "\n");
					break;
				}
				if (n - sum < 0) {
					bw.write(day + "\n");
					break;
				} else {
					day += 1;
				}

				sum = 0;
				for (int j = 0; j < 6; j++) {
					arr[j] *= 4;
					sum += arr[j];
				}
			}
			sum = 0;
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
t : ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
arr : ์‚ฌ๋ฃŒ ์–‘
sum : ํ•˜๋ฃจ์— ํ•„์š”ํ•œ ์‚ฌ๋ฃŒ ํ•ฉ
n : ํ•˜๋ฃจ์— ๋ฐฐ๋‹ฌ๋˜๋Š” ์‚ฌ๋ฃŒ์˜ ์–‘
day : ์š”๊ตฌ๋ฅผ ๋“ค์–ด์ค„ ์ˆ˜ ์—†๊ฒŒ ๋˜๋Š” ๋‚ 

 

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜๋งŒํผ ํ•˜๋ฃจ์— ๋ฐฐ๋‹ฌ๋˜๋Š” ์‚ฌ๋ฃŒ์˜ ์–‘๊ณผ ์ฒซ ๋‚  ๋จน์—ˆ๋˜ ์‹์‚ฌ์˜ ์–‘์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ฒซ ๋‚  ๋จน์—ˆ๋˜ ์‹์‚ฌ์˜ ์–‘์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด์„œ ์ฒซ ๋‚  ์‹์‚ฌ์˜ ์–‘์˜ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค. ๊ทธ ํ›„ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) n-sum์ด 0์ด๋ผ๋ฉด ๋ชจ๋“  ์‚ฌ๋ฃŒ๋ฅผ ๋‹ค ์“ฐ๊ณ  ๋‹ค์Œ๋‚ ์€ ์‚ฌ๋ฃŒ๊ฐ€ ๋ถ€์กฑํ•˜๋ฏ€๋กœ day+1์„ ์ถœ๋ ฅํ•œ๋‹ค.

2) n-sum์ด 0๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์‚ฌ๋ฃŒ๊ฐ€ ๋ถ€์กฑํ•˜๋ฏ€๋กœ day์„ ์ถœ๋ ฅํ•œ๋‹ค.

3) ๊ทธ ์™ธ๋ผ๋ฉด day+1์„ ํ•œ๋‹ค.

4) sum์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

5) ๊ฐ ์‚ฌ๋ฃŒ๋ฅผ 4๋ฐฐ์”ฉ ํ•œ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ๊ทธ ํ›„ ์‚ฌ๋ฃŒ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.