-- 예전 기록/BOJ 369

[ BOJ ] 2438 : 별 찍기 - 1 ( BRONZE 5 ) / C, C++, Python, Java

문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 과정 반복문을 배운다면 자주 볼 수 있는 기초 반복문 문제이다. 예제 출력에서는 1번째 줄에 별 1개, 2번째 줄에 별 2개, 3번째 줄에 별 3개... 를 출력한다. 1번째 줄부터 n번째 줄까지, 별을 차례대로 1개부터 n개까지 출력하면 되기 때문에, 이중 반복문을 사용하여 i 번째 줄에 i 개의 별을 출력하면 된다. C #include int main(void) { int n; scanf("%d", &n); for (int i = 0; i n..

[ BOJ ] 2759 : 팬케이크 뒤집기 ( GOLD 4 ) / Python

문제 서로 다른 크기의 n개의 팬케이크가 쌓여 있다. 순서 없이 마구 쌓여져있는 팬케이크를 크기 순대로 쌓으려고 한다. 가장 위에는 제일 작은 크기의 팬케이크가 있어야 되고, 가장 아래에는 제일 큰 크기의 팬케이크가 있어야 한다. 팬케이크를 뒤집는 방법은 위에서 k개의 순서를 뒤집는 것이다. 따라서 k번째 팬케이크가 가장 위로 올라오게 되고, 제일 위에 있던 팬케이크는 k번째가 된다. 다음 예를 보자. 팬케이크가 쌓여있는 상태가 주어졌을 때, 이를 순서대로 만드는 방법을 찾아 출력하는 프로그램을 작성하시오. 팬케이크는 최대 max(0, 2n-3)번 뒤집을 수 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 숫자 여러개가 공백으로 구분되어있다. 첫 번째 숫자는 팬케이크의 개..

[ BOJ ] 15552 : 빠른 A + B ( BRONZE 4 ) / C, C++, Python, Java

문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다. P..

[ BOJ ] 25314 : 코딩은 체육과목 입니다 ( BRONZE 5 ) / C, C++, Python, Java

문제 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 N바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?” 혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장..

[ BOJ ] 25304 : 영수증 ( BRONZE 4 ) / C, C++, Python, Java

문제 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다. 영수증에 적힌, 구매한 각 물건의 가격과 개수 구매한 물건들의 총 금액 을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자. 입력 첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다. 둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다. 이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다. 출력 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치..

[ BOJ ] 8393 : 합 ( BRONZE 5 ) / C, C++, Python, Java

문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다. 출력 1부터 n까지 합을 출력한다. 풀이 과정 1부터 n까지의 합을 저장하여 출력하면 되는 반복문 기초 문제이다. 그러나, 1부터 n까지의 합에 대한 수학 공식을 알고 있다면 이 또한 사용이 가능하다. C - 반복문 #include int main(void) { int n; scanf("%d", &n); int result = 0; for (int i = 1; i > n; int result = 0; for (int i = 1; i n; cout

[ BOJ ] 10950 : A+B - 3 ( BRONZE 5 ) / C, C++, Python, Java

문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 풀이 과정 들어오는 입력마다 합을 계산하여 출력하면 되는 반복문 기초 문제이다. C #include int main(void) { int t; scanf("%d", &t); while(t--) { int a, b; scanf("%d %d", &a, &b); printf("%d\n", a + b); } return 0; } C++ #include using namespace std; int main(void) { int t..

[ BOJ ] 2739 : 구구단 ( BRONZE 5 ) / C, C++, Python, Java

문제 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다. 출력 출력형식과 같게 N*1부터 N*9까지 출력한다. 풀이 과정 반복문을 이용하여 N단을 출력한다. 반복문 기초 문제이다. C #include int main(void) { int n; scanf("%d", &n); for (int i = 1; i > n; for (int i = 1; i