[백준 17293번] 맥주 99병 - Java //Wello Horld//
BOJ 천하제일 코딩대회예선 C번 문제인 맥주 99병을 풀어봅시다
아니, 거 문제가 너무 긴거 아니오??
일단 문제를 쉽게 해석해보면
처음에 자연수 N이 입력으로 주어지고, 처음에 벽에 K = N 만큼의 맥주 병이 있고,
K bottles of beer on the wall, K bottles of beer.
Take one down and pass it around, K-1 bottles of beer on the wall.
K = 0 이 될때 까지 K를 빼주면서 위에 문장을 출력해주면 된다
예외상황으로, K = 2 일 때,
2 bottles of beer on the wall, 2 bottles of beer.
Take one down and pass it around, 1 bottle of beer on the wall.
K = 1 일 때는,
1 bottle of beer on the wall, 1 bottle of beer.
Take one down and pass it around, no more bottles of beer on the wall.
K = 0 일 때는,
No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, N bottles of beer on the wall.
을 출력해줘서 문제를 풀었는데, 웬걸 틀려버렸다...
반례를 생각해보니, N = 1 이고 K = 0 일때, "N bottles" 가 아니라 "N bottle"을 출력해줘야 되네;;
헤헤헤 그래서 전체 코드는
import java.io.*;
import java.util.*;
public class sample {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = sc.nextInt();
for (int K = N; K >= 0; K--) {
if (K == 0) {
if(N == 1){
bw.write("No more bottles of beer on the wall, no more bottles of beer.\n"
+ "Go to the store and buy some more, " + N + " bottle of beer on the wall.\n");
} else {
bw.write("No more bottles of beer on the wall, no more bottles of beer.\n"
+ "Go to the store and buy some more, " + N + " bottles of beer on the wall.\n");
}
} else if (K == 1) {
bw.write("1 bottle of beer on the wall, 1 bottle of beer.\n"
+ "Take one down and pass it around, no more bottles of beer on the wall.\n");
} else if (K == 2) {
bw.write("2 bottles of beer on the wall, 2 bottles of beer.\n"
+ "Take one down and pass it around, 1 bottle of beer on the wall.\n");
} else {
bw.write(K + " bottles of beer on the wall, " + K + " bottles of beer.\n"
+ "Take one down and pass it around, " + (K - 1) + " bottles of beer on the wall.\n");
}
bw.write("\n");
}
bw.flush();
sc.close();
bw.close();
}
}
이렇게 하드하게 풀었다
코드 길이 줄이기는 귀찮아서 패스할게요
즐거운 주말코딩 되세요~