일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준알고리즘
- 신경망파이썬
- 딥러닝파이썬
- 8086CPU레지스터
- C언어알고리즘
- 스트림암호
- C알고리즘
- 신경망
- 신경망 학습
- BOJ
- 인공지능
- 신경망구현
- 달고나bof
- c언어
- 정보보안
- C언어 알고리즘
- BOF
- 파이썬
- FTZlevel10
- 딥러닝
- 백준
- 알고리즘
- 소프트맥스함수
- 머신러닝
- 보안
- 항등함수
- 버퍼오버플로우
- 파이썬신경망
- 활성화함수파이썬
- 밑바닥부터시작하는딥러닝
- Today
- Total
HeeJ's
[백준 17293] 맥주 99병 :: C언어 본문
문제
99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall.98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.(중략)
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.No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.
99 Bottles of Beer라는 노래의 가사는 Hello World처럼 프로그래밍 연습 예제로 자주 쓰인다. 우리의 목표는 N Bottles of Beer를 부르는 것이다. 고등학생이 맥주를 마시는 것은 세계로 미래로 꿈을 펼치는 선린인의 준법정신에 맞지 않지만 정말로 맥주를 마시는 게 아니라 노래만 부르면 되므로 상관은 없다.
N Bottles of Beer의 가사는 다음 과정을 통해 만들어진다. 현재 벽에 K병의 맥주가 있다고 하자. 맨 처음에는 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.
단, 맥주가 한 병만 있음을 표현하려면 1 bottles가 아니라 1 bottle이라고 해야 한다. 또한 맥주가 한 병도 없음을 표현하려면 0 bottles가 아니라 no more bottles라고 해야 한다.
맥주가 아직 남아있으면 위 과정을 반복하고, 더 이상 남아있지 않으면 다음을 출력하고 종료한다. 마찬가지로 맥주를 한 병만 사오는 경우 1 bottles가 아니라 1 bottle이라고 해야 한다.
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.
입력
1 이상 99 이하의 자연수 N이 주어진다.
출력
N Bottles of Beer의 가사를 출력한다.
노가다 문제라고 할 수 있을 것 같네요...
#include <stdio.h>
int main() {
int K;
scanf("%d", &K);
for (int i = K; i >= 0; i--) {
if (i > 2) {
printf("%d bottles of beer on the wall, %d bottles of beer.\n", i, i);
printf("Take one down and pass it around, %d bottles of beer on the wall.\n\n", i - 1);
}
else if (i == 2) {
printf("2 bottles of beer on the wall, 2 bottles of beer.\n");
printf("Take one down and pass it around, 1 bottle of beer on the wall.\n\n");
}
else if (i == 1) {
printf("1 bottle of beer on the wall, 1 bottle of beer.\n");
printf("Take one down and pass it around, no more bottles of beer on the wall.\n\n");
}
}
printf("No more bottles of beer on the wall, no more bottles of beer.\n");
if (K == 1) printf("Go to the store and buy some more, 1 bottle of beer on the wall.\n");
else printf("Go to the store and buy some more, %d bottles of beer on the wall.\n", K);
return 0;
}
'<Algorithm>_solved > <BOJ>_C' 카테고리의 다른 글
[백준 9316] Hello Judge :: C언어 (0) | 2020.02.04 |
---|---|
[백준 10871] X보다 작은 수 :: C언어 (0) | 2020.02.02 |
[백준 17362] 수학은 체육과목 입니다 2 :: C언어 (0) | 2020.01.31 |
[백준 10039] 평균 점수 :: C언어 (0) | 2020.01.28 |
[백준 10926] ??! :: C언어 (0) | 2020.01.27 |