Post

[BOJ/백준] 3578번 : Holes (Java)

📘 백준 3578번 : Holes


문제 바로가기


💡 문제 풀이


구멍이 0개

1
=> 1

구멍이 1개

1
=> 0

구멍이 2개 이상

1
2
3
=> 짝수 => 888... (8이 h/2개)

=> 홀수 => 4888... (맨 앞에 4, 8이 h/2개)


✅ 코드 (Java)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// https://www.acmicpc.net/problem/3578
// 구멍이 0개 => 1
// 구멍이 1개 => 0
// 구멍이 2개 이상 => 짝수 => 888...
// 			=> 홀수 => 4888...
public class B3578_Holes {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int h = Integer.parseInt(br.readLine());
		int repeat8 = h / 2; // 8을 반복할 횟수
		int remainder = h % 2; // 8로 해결하지 않은 구멍 수
		if (h == 0) { // 0
			sb.append(1);
		} else if (h == 1) { // 1
			sb.append(0);
		} else { // 2 ~
			if (remainder == 1) { // 8로 해결하지 않은 구멍이 있으면 앞에 4 추가
				sb.append("4");
			}
			for (int i = 0; i < repeat8; i++) { // 남은 구멍을 8로 해결
				sb.append("8");
			}
		}
		System.out.println(sb); // 출력
		br.close();
	}
}


💾 제출 결과


보러 가기