기록 보관소

[Baekjoon/백준]단계별로 풀어보기 1단계: 입출력과 사칙연산(C/C++) 본문

코딩 테스트/백준

[Baekjoon/백준]단계별로 풀어보기 1단계: 입출력과 사칙연산(C/C++)

JongHoon 2022. 1. 10. 19:48

백준 단계별로 풀어보기 1단계: 입출력과 사칙연산

최근 문제 주제가 너무 겹치고 좀 비슷한 문제만 계속 푸는 느낌이어서 친구의 말을 듣고 단계별로 풀어보기를 시작해보려한다. 낮은 단계인만큼, 너무 기초적인 문제들이어서 접근 방법은 생략한다.

+) 2022년 1월 27일 2문제 추가 : 최근에 10번(10926번), 11번(18108번)이 추가되어 문제를 해결하고 수정.

https://www.acmicpc.net/step/1

 

입출력과 사칙연산 단계

입출력과 사칙연산

www.acmicpc.net


(1) 백준 2557번 : Hello World

https://www.acmicpc.net/problem/2557

 

2557번: Hello World

Hello World!를 출력하시오.

www.acmicpc.net

  • 문제 설명

   -Hello World!를 출력하시오.

  • 입력과 출력

   -입력: 없음

   -출력: Hello World!를 출력하시오.

  • 코드
#include <stdio.h>

int main(int argc, char* argv[]) {
    printf("Hello World!\n");
    
    return 0;
}
  • 결과

백준 제출 결과


(2) 백준 10718번: We love kriii

https://www.acmicpc.net/problem/10718

 

10718번: We love kriii

ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박

www.acmicpc.net

  • 문제 설명

   -ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올해에도 파주 World Finals 준비 캠프에 참여했다.

   -대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자.

  • 입력과 출력

   -입력: 본 문제는 입력이 없다.

   -출력: 두 줄에 걸쳐 "강한친구 대한육군"을 한 줄에 한 번씩 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("강한친구 대한육군\n강한친구 대한육군\n");
    
    return 0;
}
  • 결과

백준 제출 결과


(3) 백준 10171번: 고양이

https://www.acmicpc.net/problem/10171

 

10171번: 고양이

아래 예제와 같이 고양이를 출력하시오.

www.acmicpc.net

  • 문제 설명

   -아래 예제와 같이 고양이를 출력하시오.

  • 입력과 출력

   -입력: 없음.

   -출력: 고양이를 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	printf("\\    /\\\n");
	printf(" )  ( ')\n");
	printf("(  /  ) \n");
	printf(" \\(__)|\n");

	return 0;
}
  • 결과

백준 제출 결과


(4) 백준 10172번: 개

https://www.acmicpc.net/problem/10172

 

10172번: 개

문제 아래 예제와 같이 개를 출력하시오. 입력 출력 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|...

www.acmicpc.net

  • 문제 설명

   -아래 예제와 같이 개를 출력하시오.

  • 입력과 출력

   -입력: 없음.

   -출력: 개를 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	printf("|\\_/|\n");
	printf("|q p|   /}\n");
	printf("( 0 )\"\"\"\\\n");
	printf("|\"^\"`    |\n");
	printf("||_/=\\\\__|");

	return 0;
}
  • 결과

백준 제출 결과


(5) 백준 1000번: A+B

https://www.acmicpc.net/problem/1000

 

1000번: A+B

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

www.acmicpc.net

  • 문제 설명

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

  • 입력과 출력

   -입력: 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

   -출력: 첫째 줄에 A+B를 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	int A, B;
	scanf("%d %d", &A, &B);

	printf("%d\n", A + B);

	return 0;
}
  • 결과

백준 제출 결과


(6) 백준 1001번: A - B

https://www.acmicpc.net/problem/1001

 

1001번: A-B

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

www.acmicpc.net

  • 문제 설명

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

  • 입력과 출력

   -입력: 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

   -출력: 첫째 줄에 A-B를 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	int A, B;
	scanf("%d %d", &A, &B);

	printf("%d\n", A - B);

	return 0;
}
  • 결과

백준 제출 결과


(7) 백준 10998번: A × B

https://www.acmicpc.net/problem/10998

 

10998번: A×B

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

www.acmicpc.net

  • 문제 설명

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

  • 입력과 출력

   -입력: 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

   -출력: 첫째 줄에 A×B를 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	int A, B;
	scanf("%d %d", &A, &B);

	printf("%d\n", A * B);

	return 0;
}
  • 결과

백준 제출 결과


(8) 백준 1008번: A/B

https://www.acmicpc.net/problem/1008

 

1008번: A/B

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

www.acmicpc.net

  • 문제 설명

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

  • 입력과 출력

   -입력: 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

   -출력: 첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	double A, B;
	scanf("%lf %lf", &A, &B);

	printf("%.13lf\n", A / B);

	return 0;
}
  • 결과

백준 제출 결과


(9) 백준 10869번: 사칙연산

https://www.acmicpc.net/problem/10869

 

10869번: 사칙연산

두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 

www.acmicpc.net

  • 문제 설명

   -두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 

  • 입력과 출력

   -입력: 두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000)

   -출력: 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	int A, B;
	scanf("%d %d", &A, &B);

	printf("%d\n", A + B);
	printf("%d\n", A - B);
	printf("%d\n", A * B);
	printf("%d\n", A / B);
	printf("%d\n", A % B);

	return 0;
}
  • 결과

백준 제출 결과


(10) 백준 10926번: ??!

https://www.acmicpc.net/problem/10926

 

10926번: ??!

준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때

www.acmicpc.net

  • 문제 설명

   -준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오.

  • 입력과 출력

   -입력: 첫째 줄에 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어진다. 아이디는 알파벳 소문자로만 이루어져 있으며, 길이는 50자를 넘지 않는다.

   -출력: 첫째 줄에 준하의 놀람을 출력한다. 놀람은 아이디 뒤에 ??!를 붙여서 나타낸다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	char ID[51];
	scanf("%s", ID);

	printf("%s??!\n", ID);

	return 0;
}
  • 결과

백준 제출 결과


(11) 백준 18108번: 1998년생인 내가 태국에서는 2541년생?!

https://www.acmicpc.net/problem/18108

 

18108번: 1998년생인 내가 태국에서는 2541년생?!

ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국

www.acmicpc.net

  • 문제 설명

   -ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다.

    불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오.

  • 입력과 출력

   -입력: 서기 연도를 알아보고 싶은 불기 연도 y가 주어진다. (1000 ≤ y ≤ 3000)

   -출력: 불기 연도를 서기 연도로 변환한 결과를 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	int y;
	scanf("%d", &y);

	printf("%d\n", y - 543);	//2541 - 1998 = 543

	return 0;
}
  • 결과

백준 제출 결과


(12) 백준 10430번: 나머지

https://www.acmicpc.net/problem/10430

 

10430번: 나머지

첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

www.acmicpc.net

  • 문제 설명

   -(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?

    (A×B)%C는 ((A%C) × (B%C))%C 와 같을까?

    세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.

  • 입력과 출력

   -입력: 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

   -출력: 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	int A, B, C;
	scanf("%d %d %d", &A, &B, &C);

	printf("%d\n", (A + B) % C);
	printf("%d\n", ((A % C) + (B % C)) % C);
	printf("%d\n", (A * B) % C);
	printf("%d\n", ((A % C) * (B % C)) % C);

	return 0;
}
  • 결과

백준 제출 결과


(13) 백준 2588번: 곱셈

https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

  • 문제 설명

   -(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

    (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

  • 입력과 출력

   -입력: 첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

   -출력: 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

  • 코드
#include <stdio.h>

int main(int argc, char *argv[]) {
	int A, B;
	int h, t, u;
	scanf("%d", &A);
	scanf("%d", &B);

	h = (B % 1000) / 100;	//백의 자리
	t = (B % 100) / 10;	//십의 자리
	u = B % 10;		//일의 자리

	printf("%d\n", A * u);
	printf("%d\n", A * t);
	printf("%d\n", A * h);
	printf("%d\n", A * B);

	return 0;
}
  • 결과

백준 제출 결과