문제

N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다.

입력

첫째 줄에 2,000,000 이하의 자연수 N이 주어진다.

출력

첫 줄에 구하고자 하는 수를 출력한다.

예제 입력 1

3

예제 출력 1

12

더보기

Solution

#include<stdio.h>

int main(void)
{
	unsigned long long int sum=0, N;

	scanf("%llu", &N);

	for(unsigned long long int i=1;i<N;i++)
		if(((N+1)*i)%N==((N+1)*i)/N)
			sum+=(N+1)*i;

	printf("%llu\n", sum);
	return 0;
}
728x90

문제

두 개의 바구니에 사과와 오렌지가 있다. 첫 번째 바구니에는 사과 A개와 오렌지 B개가 있으며 두 번째 바구니에는 사과 C개와 오렌지 D개가 있다.

당신은 한 바구니에 있는 과일 하나를 집어서 다른 바구니로 옮길 수 있다. 이런 식으로 과일을 옮길 때, 한 바구니에는 사과만 있게 하고 다른 쪽에는 오렌지만 있게 하려고 한다.

앞서 말한 조건을 만족하도록 과일을 옮길 때, 과일을 옮기는 최소 횟수를 구하는 프로그램을 작성하여라.

입력

첫 번째 줄에는 첫 번째 바구니에 있는 사과와 오렌지의 수 A, B가 주어진다. (0 ≤ A, B ≤ 1,000)

두 번째 줄에는 두 번째 바구니에 있는 사과와 오렌지의 수 C, D가 주어진다. (0 ≤ C, D ≤ 1,000)

출력

사과와 오렌지를 옮기는 최소 횟수를 출력한다.

예제 입력 1

1 2
3 4

예제 출력 1

5

더보기

Solution

#include<stdio.h>

int main(void)
{
	int A, B, C, D;

	scanf("%d %d", &A, &B);
	scanf("%d %d", &C, &D);

	printf("%d\n", A+D<B+C?A+D:B+C);
	return 0;
}

 

728x90

문제

창영이는 화가나서 성냥을 바닥에 던졌다.

상근이는 바닥이 더러워진 것을 보고 창영이를 매우 혼냈다.

강산이는 근처에서 박스를 발견했다.

상덕이는 강산이가 발견한 박스를 상근이에게 주었다.

상근이는 박스에 던진 성냥을 모두 담아오라고 시켰다.

하지만, 박스에 들어가지 않는 성냥도 있다.

이런 성냥은 박스에 담지 않고 희원이에게 줄 것이다.

성냥이 박스에 들어가려면, 박스의 밑면에 성냥이 모두 닿아야 한다.

박스의 크기와 성냥의 길이가 주어졌을 때, 성냥이 박스에 들어갈 수 있는지 없는지를 구하는 프로그램을 작성하시오. 창영이는 성냥을 하나씩 검사한다.

입력

첫째 줄에 던진 성냥의 개수 N과 박스의 가로 크기 W와 세로 크기 H가 주어진다. (1 ≤ N ≤ 50, 1 ≤ W, H ≤ 100)

다음 N개 줄에는 성냥의 길이가 주어진다. 길이는 1보다 크거나 같고 1000보다 작거나 같은 자연수이다. 

출력

입력으로 주어지는 각각의 성냥에 대해서, 박스안에 들어갈 수 있으면 "DA" 없으면 "NE"를 출력한다.

예제 입력 1

5 3 4
3
4
5
6
7

예제 출력 1

DA
DA
DA
NE
NE

힌트


더보기

Solution

#include<stdio.h>

int main(void)
{
	int N, W, H, square;

	scanf("%d %d %d", &N, &W, &H);
	square=W*W+H*H;

	for(int n=0;n<N;n++)
	{
		int length;

		scanf("%d", &length);
		printf("%s\n", length*length<=square?"DA":"NE");
	}

	return 0;
}
728x90

문제

경근이는 수업 과제의 일환으로 연세대학교의 역사를 조사하고 있었다. 케케묵은 도서관 구석에서 경근이가 발견한 것은 역대 연고전의 야구경기 실황 기록문서였다.
하지만 문서를 가지고 있음에도 불구하고 한 눈에 당시의 경기 승패를 파악하기에는 어려움이 많았는데, 문서에는 회차별 양 팀 획득 점수만이 적혀져 있기 때문이었다.

경근이는 주어진 방대한 자료를 해석하는것이 귀찮았기 때문에 절친한 프로그래머 친구인 당신에게 도움을 요청했다.

주어진 실황 기록문서에서 어떤 팀이 이겼는지를 알아내 경근이를 도와주자!

입력

입력 파일의 첫 번째 줄에 테스트 케이스의 수를 의미하는 자연수 T가 주어진다. 그 다음에는 T개의 테스트 케이스가 주어진다.

각 테스트 케이스는 9줄에 걸쳐서 입력되며, 매 줄마다 해당 회의 연세대 득점 Y와 고려대 득점 K가 공백으로 구분되어 주어진다. 이 두 수는 0이상 9이하이다.

출력

각각의 케이스마다 한 줄에 연세대가 이겼을 경우 "Yonsei", 고려대가 이겼을 경우 "Korea", 비겼을 경우 "Draw"를 출력한다.

예제 입력 1

1
1 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0

예제 출력 1

Yonsei

더보기

Solution

#include<stdio.h>

int main(void)
{
	int T;

	scanf("%d", &T);

	for(int t=0;t<T;t++)
	{
		int Y=0, K=0;

		for(int i=0;i<9;i++)
		{
			int y, k;

			scanf("%d %d", &y, &k);

			Y+=y;
			K+=k;
		}

		printf("%s\n", Y>K?"Yonsei":Y<K?"Korea":"Draw");
	}

	return 0;
}
728x90

문제

두 개의 정수 입력 a, b를 받아서 a+b를 출력하시오.

C 입출력 예제

#include <stdio.h>

scanf(“%d%d”, &a, &b);
printf(“%d\n”, a+b);

C++ 입출력 예제

#include <iostream>

cin >> a >> b;
cout << a+b << endl;

JAVA 입출력 예제

import java.util.Scanner;
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
b = sc.nextInt();
System.out.println((a+b));

입력

a b; a와 b는 -100,000과 100,000 사이의 정수이다.

출력

a+b

예제 입력 1

1 2

예제 출력 1

3

예제 입력 2

4 5

예제 출력 2

9

더보기

Solution

#include<stdio.h>

int main(void)
{
	int a, b;

	scanf("%d%d", &a, &b);
	printf("%d\n", a+b);

	return 0;
}

 

728x90

문제

오각형의 각 변에 아래 그림과 같이 점을 찍어 나간다. N단계에서 점의 개수는 모두 몇 개일까?

입력

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

출력

첫째 줄에 N단계에서 점의 개수를 45678로 나눈 나머지를 출력한다.

예제 입력 1

3

예제 출력 1

22

더보기

Solution

#include<stdio.h>

int main(void)
{
	unsigned long long int dot=5;
	int N, plus=7;

	scanf("%d", &N);

	for(int i=1;i<N;i++,plus+=3)
		dot+=plus;

	printf("%llu\n", dot%45678);
	return 0;
}

 

728x90

문제

최백준이 이번 학기에 들은 과목과 학점 그리고 성적이 주어졌을 때, 평균 평점을 계산하는 프로그램을 작성하시오.

성적은 A+~F까지 총 13개가 있다.

A+: 4.3, A0: 4.0, A-: 3.7

B+: 3.3, B0: 3.0, B-: 2.7

C+: 2.3, C0: 2.0, C-: 1.7

D+: 1.3, D0: 1.0, D-: 0.7

F: 0.0

평균 평점은 각 과목의 학점*성적을 모두 더한 뒤에, 총 학점으로 나누면 된다.

입력

첫째 줄에, 백준이가 이번 학기에 들은 과목 수가 주어진다. 둘째 줄부터 N개의 줄에 각 과목의 과목명, 학점, 성적이 주어진다. 과목명은 알파벳 소문자와 숫자, 그리고 밑줄 (_)로만 이루어져 있으며, 최대 100글자이고, 학점은 1보다 크거나 같고, 3보다 작거나 같은 자연수이다. 성적은 문제에 설명한 13가지 중 하나이다. 

출력

첫째 줄에 평균 평점을 소수점 셋째 자리에서 반올림해서 둘째 자리까지 출력한다. (평균 평점이 1.5이면 1.50을 출력한다.)

예제 입력 1

7
General_Physics_1 3 A+
Introduction_to_Computer_Science_and_Eng 3 B0
Reading_And_Writing 2 C0
English_1 3 C+
Analytic_Geometry_and_Calculus_1 3 B+
Fortran_Programming 3 B+
C_Language_Programming 3 A+

예제 출력 1

3.28

비슷한 문제

<백준 알고리즘> 2754번: 학점계산


더보기

Solution

#include<stdio.h>

int main(void)
{
	int N, sum=0;
	float total=0.0;

	scanf("%d", &N);

	for(int i=0;i<N;i++)
	{
		char name[101]={'\0', }, score[3]={'\0', };
		int times;
		float subject_score=0.0;

		scanf("%s %d %s", name, &times, score);

		if(score[0]!='F')
		{
			subject_score+='E'-score[0];
			subject_score+=0.3*(score[1]=='+');
			subject_score-=0.3*(score[1]=='-');
		}

		sum+=times;
		total+=subject_score*times;
	}

	total/=sum;
	total*=1000;
	total+=(int)total%10>4;
	total/=1000;

	printf("%.2f\n", total);
	return 0;
}
728x90

문제

어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오.

A+: 4.3, A0: 4.0, A-: 3.7

B+: 3.3, B0: 3.0, B-: 2.7

C+: 2.3, C0: 2.0, C-: 1.7

D+: 1.3, D0: 1.0, D-: 0.7

F: 0.0

입력

첫째 줄에 C언어 성적이 주어진다. 성적은 문제에서 설명한 13가지 중 하나이다.

출력

첫째 줄에 C언어 평점을 출력한다.

예제 입력 1

A0

예제 출력 1

4.0

비슷한 문제

<백준 알고리즘> 2755번: 이번학기 평점은 몇점?


더보기

Solution

#include<stdio.h>

int main(void)
{
	float score_num=0.0;
	char score[3]={'\0', };

	scanf("%s", score);

	if(score[0]!='F')
	{
		score_num+='E'-score[0];
		score_num+=0.3*(score[1]=='+');
		score_num-=0.3*(score[1]=='-');
	}

	printf("%.1f", score_num);
	return 0;
}
728x90

+ Recent posts