๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 1474_๋ฐ‘ ์ค„

๋ฟŒ์•ผ._. 2024. 6. 24. 15:50

Silver I

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

< ๋ฐ‘ ์ค„ >

 

๋ฌธ์ œ ํ’€์ด 

 

M์—์„œ N๊ฐœ์˜ ๋‹จ์–ด์˜ ๊ธธ์ด๋ฅผ ์ œ์™ธํ•œ ๊ฐ’์„ (N-1) ๊ฐœ๋กœ ๋‚˜๋ˆˆ๋‹ค. ๋ชซ์ด ๊ฐ ๋‹จ์–ด ์‚ฌ์ด์— ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” _์˜ ๊ฐœ์ˆ˜์ด๋‹ค. ๋งŒ์•ฝ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ๋ฉด ์†Œ๋ฌธ์ž ์•ž์— _๋ฅผ ๋ฐฐ์น˜ํ•˜๊ณ , ๊ทธ๋ž˜๋„ ๊ธธ์ด๊ฐ€ ๋‚จ๋Š”๋‹ค๋ฉด ๋‹จ์–ด๋ฅผ ๋’ค์—์„œ๋ถ€ํ„ฐ ํ™•์ธํ•˜๋ฉฐ ๋Œ€๋ฌธ์ž ์•ž์— _๋ฅผ ๋ฐฐ์น˜ํ•œ๋‹ค.  

 

 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 _1474_ { // ๋ฐ‘ ์ค„

	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 = new StringTokenizer(bf.readLine());

		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());

		String arr[] = new String[n];
		int space[] = new int[n - 1];
		int len = 0;
		for (int i = 0; i < n; i++) {
			arr[i] = bf.readLine();
			len += arr[i].length();
		}

		int temp = (m - len) / (n - 1);
		for (int i = 0; i < n - 1; i++) {
			space[i] = temp;
		}

		if ((m - len) % (n - 1) != 0) {
			m -= len + (n - 1) * temp;
			while (m > 0) {
				for (int i = 1; i < n; i++) {
					if (Character.isLowerCase(arr[i].charAt(0))) {
						space[i - 1] += 1;
						m -= 1;
					}
					if (m == 0) {
						break;
					}
				}
				if (m == 0) {
					break;
				}
				for(int i=n-1; i>=0; i--) {
					if(Character.isUpperCase(arr[i].charAt(0))) {
						space[i-1]+=1;
						m-=1;
					}
					if(m==0) {
						break;
					}
				}
			}
		}
		for (int i = 0; i < n; i++) {
			bw.write(arr[i]);
			if (i == n - 1) {
				break;
			}
			for (int j = 0; j < space[i]; j++) {
				bw.write("_");
			}
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
n, m : ์˜์–ด ๋‹จ์–ด ๊ฐœ์ˆ˜, ๊ธธ์ด
arr : ๋‹จ์–ด 
space : ๋‹จ์–ด ์‚ฌ์ด _ ๊ฐœ์ˆ˜
len : ์ด ์˜์–ด ๋‹จ์–ด ๊ธธ์ด
temp : ๋‹จ์–ด ์‚ฌ์ด ๋“ค์–ด๊ฐˆ _ ๊ฐœ์ˆ˜

 

์˜์–ด ๋‹จ์–ด ๊ฐœ์ˆ˜์™€ ๊ธธ์ด๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์˜์–ด ๋‹จ์–ด๋ฅผ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด์„œ ๊ธธ์ด๋„ ์„ธ์–ด ๊ฐ๊ฐ arr๊ณผ len์— ์ €์žฅํ•œ๋‹ค. (์ „์ฒด ๊ธธ์ด - ๋‹จ์–ด ๊ธธ์ด)/(๋‹จ์–ด ๊ฐœ์ˆ˜ - 1)์ด ๊ฐ ๋‹จ์–ด ์‚ฌ์ด์— ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” _์˜ ๊ฐœ์ˆ˜์ด๋ฏ€๋กœ space ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. ๋งŒ์•ฝ ์•ž์—์„œ ๊ตฌํ•œ (์ „์ฒด ๊ธธ์ด - ๋‹จ์–ด ๊ธธ์ด)/(๋‹จ์–ด ๊ฐœ์ˆ˜ - 1) ๊ฐ’์ด ๋‚˜๋ˆ  ๋–จ์–ด์ง€์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค์Œ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

1) ๋‹จ์–ด ์ค‘ ์†Œ๋ฌธ์ž๋ฅผ ์ฐพ์•„ ์†Œ๋ฌธ์ž ์•ž์— _ ๋ฐฐ์น˜

2) ์†Œ๋ฌธ์ž๊ฐ€ ์—†๊ฑฐ๋‚˜ ์†Œ๋ฌธ์ž ์•ž์— ๋ฐฐ์น˜ ํ›„์—๋„ ๊ธธ์ด๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๋ฉด ๋‹จ์–ด๋ฅผ ๋’ค์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜์—ฌ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด ์•ž์— _ ๋ฐฐ์น˜

 

์ตœ์ข… ์˜์–ด๋‹จ์–ด์™€ _๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.