2739) 구구단
→https://www.acmicpc.net/problem/2739
2739번: 구구단
N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 1; i <= 9; i++) {
cout << n << " * " << i << " = " << n * i << endl;
}
return 0;
}
☆for문의 종료 조건은 이걸 넘어서면 종료하겠다가 아니라 이때까지 반복하겠다는 의미이다. (정신 놓고 대충 쓰다가 부호 반대로 써서 왜 틀렸는지 한참 헤매다,,,)
10950) A+B -3
→https://www.acmicpc.net/problem/10950
10950번: A+B - 3
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int n, a, b;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a >> b;
cout << a + b << endl;
}
return 0;
}
☆각 테스트 케이스 마다 자동으로 검사하는 형태니까 입력받으면 바로 출력되도록 작성하면 된다.
8393) 합
→https://www.acmicpc.net/problem/8393
8393번: 합
n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int n, sum=0;
cin >> n;
for (int i = 1; i <= n; i++) {
sum += i;
}
cout << sum;
return 0;
}
☆ 합을 출력할 때는 1씩 더하는 것이 아니라 i를 증가시킨 것을 더하도록 한다.
25304) 영수증
→https://www.acmicpc.net/problem/25304
25304번: 영수증
준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int s, n, a, b, sum = 0;
cin >> s >> n;
for (int i = 0; i < n; i++) {
cin >> a >> b;
sum += (a * b);
}
if (sum == s) {
cout << "Yes";
}
else {
cout << "No";
}
return 0;
}
☆비주얼 스튜디오 기준, 예제 입력으로 디버깅할 때 한번에 붙여 넣기 하면 경고문이 뜨지만 무시하고 돌려도 정상적인 결과 값이 나온다.
25314) 코딩은 체육과목 입니다
→https://www.acmicpc.net/problem/25314
25314번: 코딩은 체육과목 입니다
오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 0; i < (n / 4); i++) {
cout << "long ";
}
cout << "int";
return 0;
}
☆ for문에서 위와 같이 연산형태로 작성하여 한번에 종료 조건을 구성할 수 있다.
15552) 빠른 A+B
→https://www.acmicpc.net/problem/15552
15552번: 빠른 A+B
첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
www.acmicpc.net
#include <stdio.h>
int main()
{
int n, a, b;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d %d", &a, &b);
printf("%d\n", a + b);
}
return 0;
}
★ c++ <iostream>의 cin, cout, endl은 느리다. c <stdio.h>의 scanf, printf, \n은 빠르다.
11021) A+B -7
→https://www.acmicpc.net/problem/11021
11021번: A+B - 7
각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int n, a, b;
cin>>n;
for (int i = 1; i <= n; i++) {
cin>>a>>b;
cout << "Case #" << i << ": " << a + b << endl;
}
return 0;
}
2438) 별 찍기 -1

→https://www.acmicpc.net/problem/2438
2438번: 별 찍기 - 1
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < i; j++) {
cout << "*";
}
cout << "\n";
}
return 0;
}
☆별 찍기 문제는 그냥 2차원 배열, 행렬로 생각하면 편한 것 같다. (for문 2개 써서 조건 맞춰주면 됨)
2439) 별 찍기 -2

→https://www.acmicpc.net/problem/2439
2439번: 별 찍기 - 2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for (int i = n-1; i >= 0; i--) {
for (int j = 0; j < i; j++) {
cout << " ";
}
for (int k = n; k > i; k--) {
cout << "*";
}
cout << "\n";
}
return 0;
}
☆앞 선 문제에서 처럼 왼쪽으로 정렬된 별 찍기는 따로 공백을 넣지 않아도 되기 때문에 for문 2개면 끝난다. 하지만 오른쪽으로 정렬된 별 찍기는 1. 공백 넣기 2. 별 찍기 3. 개행 <-으로 3단계가 필요하다. 따라서 for문 3개로 구현해 보았다. 공백이랑 별은 같은 라인에 출력되는 것이므로, 전체 개행하는 for문 안에 다 들어가는 형식이다. (예전 같았으면 그냥 멍 때리는 문제였을 텐데 컴공의 지옥 과제 수련을 겪었더니 저절로 풀이가 떠오른다,,,)
10952) A+B -5
→https://www.acmicpc.net/problem/10952
10952번: A+B - 5
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int a=1, b=1;
while (1) {
cin >> a >> b;
if (a != 0 && b != 0) {
cout << a + b << "\n";
}
else break;
}
return 0;
}
☆while(1)은 true 조건으로서, 무한 루프를 뜻한다.
10951) A+B -4
→https://www.acmicpc.net/problem/10951
10951번: A+B - 4
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
#include <iostream>
using namespace std;
int main()
{
int a, b;
while (cin >> a >> b) {
cout << a + b << "\n";
}
return 0;
}
☆while문 조건을 저렇게 써서 파일의 끝, eof를 체크할 수 있다. 테스트할 때는 -1은 안되고 영타자로 ‘eof’라고 치면 종료된다. (맨날 파일 입출력으로만 하다가 갑자기 아무것도 없는데 종료하래서 당황함,,,)
참고-> https://st-lab.tistory.com/257
'⚡PS > 백준' 카테고리의 다른 글
| [c++/백준 단계별 풀기] 6단계-심화 1 (3) | 2024.01.05 |
|---|---|
| [c++/백준 단계별 풀기] 5단계-문자열 (2) | 2024.01.04 |
| [c++/백준 단계별 풀기] 4단계-1차원 배열 (2) | 2024.01.03 |
| [c++/백준 단계별 풀기] 2단계-조건문 (1) | 2024.01.02 |
| [c++/백준 단계별 풀기] 1단계-입출력과 사칙연산 (1) | 2024.01.02 |