'백준'에 해당되는 글 81건

백준 11022: A+B - 8

C++/Baekjoon 2022. 7. 18. 21:18

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)


출력

각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.


코드

#include <iostream>

using namespace std;

int main()
{
    // :: 1차 입력
    int count;
    cin >> count;
    
    // :: 2차 입력 및 연산
    string textContainer = "";
    for(int index = 1; index <= count; index++) {
        // :: 2차 입력
        int a, b = 0;
        cin >> a >> b;
        
        // :: 연산
        textContainer += "Case #" + to_string(index) + ": " 
            + to_string(a) + " + " + to_string(b) + " = " + to_string(a + b);
        
        // :: 개행 확인
        if(index != count) textContainer += "\n";
    }
    
    // :: 출력
    cout << textContainer;

    return 0;
}

참고

 
 

 

 

'C++ > Baekjoon' 카테고리의 다른 글

백준 2439: 별 찍기 - 2  (0) 2022.07.18
백준 2438: 별 찍기 - 1  (0) 2022.07.18
백준 11021: A+B - 7  (0) 2022.07.18
백준 2742: 기찍 N  (0) 2022.07.18
백준 2741: N 찍기  (0) 2022.07.18
블로그 이미지

RIsN

,

백준 11021: A+B - 7

C++/Baekjoon 2022. 7. 18. 21:16

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)


출력

각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.


코드

#include <iostream>

using namespace std;

int main()
{
    // :: 1차 입력
    int count;
    cin >> count;
    
    // :: 2차 입력 및 연산
    string textContainer = "";
    for(int index = 1; index <= count; index++) {
        // :: 2차 입력
        int a, b = 0;
        cin >> a >> b;
        
        // :: 연산
        textContainer += "Case #" + to_string(index) + ": " + to_string(a + b);
        
        // :: 개행 확인
        if(index != count) textContainer += "\n";
    }
    
    // :: 출력
    cout << textContainer;

    return 0;
}

참고

 
 

 

 

'C++ > Baekjoon' 카테고리의 다른 글

백준 2438: 별 찍기 - 1  (0) 2022.07.18
백준 11022: A+B - 8  (0) 2022.07.18
백준 2742: 기찍 N  (0) 2022.07.18
백준 2741: N 찍기  (0) 2022.07.18
백준 15552: 빠른 A+B  (0) 2022.07.18
블로그 이미지

RIsN

,

백준 2742: 기찍 N

C++/Baekjoon 2022. 7. 18. 21:14

문제

자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.


출력

첫째 줄부터 N번째 줄 까지 차례대로 출력한다.


코드

#include <iostream>

using namespace std;

int main()
{
    // :: 입력
    int count;
    cin >> count;
    
    // :: 연산
    string textContainer = "";
    for(int index = count; index >= 1; index--) {
        // :: 연산
        textContainer += to_string(index);
        
        // :: 개행 확인
        if(index != 1) textContainer += "\n";
    }
    
    // :: 출력
    cout << textContainer;

    return 0;
}

참고

 
 

 

 

'C++ > Baekjoon' 카테고리의 다른 글

백준 11022: A+B - 8  (0) 2022.07.18
백준 11021: A+B - 7  (0) 2022.07.18
백준 2741: N 찍기  (0) 2022.07.18
백준 15552: 빠른 A+B  (0) 2022.07.18
백준 8393: 합  (0) 2022.07.18
블로그 이미지

RIsN

,

백준 2741: N 찍기

C++/Baekjoon 2022. 7. 18. 21:13

문제

자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.


출력

첫째 줄부터 N번째 줄 까지 차례대로 출력한다.


코드

#include <iostream>

using namespace std;

int main()
{
    // :: 입력
    int count;
    cin >> count;
    
    // :: 연산
    string textContainer = "";
    for(int index = 1; index <= count; index++) {
        // :: 연산
        textContainer += to_string(index);
        
        // :: 개행 확인
        if(index != count) textContainer += "\n";
    }
    
    // :: 출력
    cout << textContainer;

    return 0;
}

참고

 
 

 

 

'C++ > Baekjoon' 카테고리의 다른 글

백준 11021: A+B - 7  (0) 2022.07.18
백준 2742: 기찍 N  (0) 2022.07.18
백준 15552: 빠른 A+B  (0) 2022.07.18
백준 8393: 합  (0) 2022.07.18
백준 10950: A+B - 3  (0) 2022.07.18
블로그 이미지

RIsN

,

문제

본격적으로 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는 맨 마지막에 한 번만 하면 된다.

Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.

또한 입력과 출력 스트림은 별개이므로, 테스트케이스를 전부 입력받아서 저장한 뒤 전부 출력할 필요는 없다. 테스트케이스를 하나 받은 뒤 하나 출력해도 된다.

자세한 설명 및 다른 언어의 경우는 이 글에 설명되어 있다.

이 블로그 글에서 BOJ의 기타 여러 가지 팁을 볼 수 있다.


입력

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.


출력

각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.


코드

#include <iostream>

using namespace std;

int main()
{
    // :: 전제 설정
    cin.tie(NULL);
    ios::sync_with_stdio(false);
    
    // :: 1차 입력
    int count;
    cin >> count;
    
    // :: 2차 입력 및 연산
    string textContainer = "";
    for(int index = 1; index <= count; index++) {
        // :: 2차 입력
        int a, b = 0;
        cin >> a >> b;
        
        // :: 연산
        textContainer += to_string(a + b);
        
        // :: 개행 확인
        if(index != count) textContainer += "\n";
    }
    
    // :: 출력
    cout << textContainer;

    return 0;
}

참고

 
 

 

 

'C++ > Baekjoon' 카테고리의 다른 글

백준 2742: 기찍 N  (0) 2022.07.18
백준 2741: N 찍기  (0) 2022.07.18
백준 8393: 합  (0) 2022.07.18
백준 10950: A+B - 3  (0) 2022.07.18
백준 2739: 구구단  (0) 2022.07.18
블로그 이미지

RIsN

,

백준 8393: 합

C++/Baekjoon 2022. 7. 18. 21:10

문제

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.


입력

첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.


출력

1부터 n까지 합을 출력한다.


코드

#include <iostream>

using namespace std;

int main()
{
    // :: 입력
    int count;
    cin >> count;
    
    // :: 연산
    int sum = 0;
    for(int index = 1; index <= count; index++) {
        sum += index;
    }
    
    // :: 출력
    cout << sum;

    return 0;
}

참고

 
 

 

 

'C++ > Baekjoon' 카테고리의 다른 글

백준 2742: 기찍 N  (0) 2022.07.18
백준 2741: N 찍기  (0) 2022.07.18
백준 15552: 빠른 A+B  (0) 2022.07.18
백준 10950: A+B - 3  (0) 2022.07.18
백준 2739: 구구단  (0) 2022.07.18
블로그 이미지

RIsN

,

백준 10950: A+B - 3

C++/Baekjoon 2022. 7. 18. 21:07

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)


출력

각 테스트 케이스마다 A+B를 출력한다.


코드

#include <iostream>

using namespace std;

int main()
{
    // :: 1차 입력
    int count;
    cin >> count;
    
    // :: 2차 입력 및 연산
    string textContainer = "";
    for(int index = 1; index <= count; index++) {
        // :: 2차 입력
        int a, b = 0;
        cin >> a >> b;
        
        // :: 연산
        textContainer += to_string(a + b);
        
        // :: 개행 확인
        if(index != count) textContainer += "\n";
    }
    
    // :: 출력
    cout << textContainer;

    return 0;
}

참고

 
 

 

 

'C++ > Baekjoon' 카테고리의 다른 글

백준 2742: 기찍 N  (0) 2022.07.18
백준 2741: N 찍기  (0) 2022.07.18
백준 15552: 빠른 A+B  (0) 2022.07.18
백준 8393: 합  (0) 2022.07.18
백준 2739: 구구단  (0) 2022.07.18
블로그 이미지

RIsN

,

문제

N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.


입력

첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.


출력

출력형식과 같게 N*1부터 N*9까지 출력한다.


코드

#include <iostream>

using namespace std;

int main()
{
    // :: 입력
    int number;
    cin >> number;
    
    // :: 연산
    string textContainer = "";
    int min = 1;
    int max = 9;
    for(int index = min; index <= max; index++) {
        // :: 곱셈 연산
        int resultMultiply = number * index;
        
        // :: 텍스트로 변환
        textContainer += to_string(number) + " * " + to_string(index)
            + " = " + to_string(resultMultiply);
        
        // :: 개행 확인
        if(index != 9) textContainer += "\n";
    }
    
    // :: 출력
    cout << textContainer;

    return 0;
}

참고

'C++ > Baekjoon' 카테고리의 다른 글

백준 2742: 기찍 N  (0) 2022.07.18
백준 2741: N 찍기  (0) 2022.07.18
백준 15552: 빠른 A+B  (0) 2022.07.18
백준 8393: 합  (0) 2022.07.18
백준 10950: A+B - 3  (0) 2022.07.18
블로그 이미지

RIsN

,

문제

베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다.

이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다.

예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23)

자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 


입력

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하는 한 줄로 이루어져 있다.

입력의 마지막에는 0이 주어진다.


출력

각 테스트 케이스에 대해서, n보다 크고, 2n보다 작거나 같은 소수의 개수를 출력한다.


코드

using System;
					
public class Program
{
	public static void Main()
	{
		// :: 소수 저장소 등록
		bool[] primes = new bool[(123456*2) + 1];
		
		// :: 1은 소수가 아님
		primes[1] = true;
		
		// :: 소수 등록
		for(int index = 2; index <= primes.Length - 1; index++) {
			// :: Next : 소수가 아닐 때
			if(primes[index])
				continue;
			
			// :: 소수 계산 : 자기 자신의 배수를 소수가 아니라고 등록
			for(int indexA = index + index; indexA <= primes.Length - 1; indexA += index) {
				primes[indexA] = true;
			}
		}
		
		// :: 출력 선언
		string print = "";
		
		// :: 연산
		while(true) {
			int num = int.Parse(Console.ReadLine());
			
			// :: EXIT : 0이면 나가기
			if(num == 0) break;
						
			// :: Count 획득
			int count = 0;
			for(int index = num + 1; index <= num*2; index++) {
				if(!primes[index]) count += 1;
			}
			
			// :: 카운트 기록
			print += count + "\n";
		}
		
		// :: 출력
		Console.WriteLine(print);
	}
}

참고

'C# > Baekjoon' 카테고리의 다른 글

백준 1929 : 소수 구하기  (0) 2022.03.31
백준 11653 : 소인수분해  (0) 2022.03.30
백준 2581 : 소수  (0) 2022.03.29
백준 1978 : 소수 찾기  (0) 2022.03.28
백준 10757 : 큰 수 A+B  (0) 2022.03.25
블로그 이미지

RIsN

,

문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.


출력

한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.


코드

using System;
using System.Text;
					
public class Program
{
	public static void Main()
	{
		// :: 입력 M, N
		string[] input = Console.ReadLine().Split(' ');
		
		// :: 변환 : M, N
		int numMin = int.Parse(input[0]);
		int numMax = int.Parse(input[1]);
		
		// :: 참고 : 에라토스테네스의 체
		// :: https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4
		
		// :: 배열 제작 : 기본값 false
		bool[] primes = new bool[numMax +1];
		primes[1] = true; // : 1 예외 처리
		
		// :: 소수가 아닌 것에 : true 처리
		for(int index = 2; index * index <= numMax; index++) {
			// :: 소수일 때
			if(!primes[index]) {
				// :: 초기값은 소수 * 소수
				// :: 증가값은 +소수
				for(int multiple = index + index; multiple <= numMax; multiple += index) {
					primes[multiple] = true;
				}
			}				
		}
		
		// :: 출력 확인
		StringBuilder print = new StringBuilder(); // : string을 쓸 경우 개행 문제인지, 메모리 초과가 뜸
		for(int index = numMin; index <= numMax; index++)  {
			if(!primes[index]) {
				//Console.WriteLine(index);
				print.Append(index + "\n");
			}
		}
		
		// :: 출력
		Console.WriteLine(print);
	}
}

참고

  • string
    • string은 값 타입이 아닌 참조 변수
    • 문자열을 조합할 때마다 새로운 클래스가 생성
    • 문자열을 조합할 때마다 부하가 발생
  • StringBuilder
    • 새로운 변수를 사용하지 않고 결합

사이트 : 생각대로 살지 않으면 사는대로 생각한다. :: [C#] string 과 StringBuilder 사용 (tistory.com)

'C# > Baekjoon' 카테고리의 다른 글

백준 4948 : 베르트랑 공준  (0) 2022.04.06
백준 11653 : 소인수분해  (0) 2022.03.30
백준 2581 : 소수  (0) 2022.03.29
백준 1978 : 소수 찾기  (0) 2022.03.28
백준 10757 : 큰 수 A+B  (0) 2022.03.25
블로그 이미지

RIsN

,