본문 바로가기

programming/algorithm

[ algorithm ] 백준 단계별 문제 풀이 (입출력과 사칙연산)

[ algorithm ] 백준 단계별 문제 풀이 (입출력과 사칙연산)

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 백준 사이트에서 입출력과 사칙연산에 관련된 문제들의 풀이를 살펴보려 합니다.

 

파이썬3 를 사용해 문제 풀이를 진행하겠습니다.

 

문제마다 링크를 걸어두었으니 문제를 살펴보시고 문제를 푼 다음에 저와

 

풀이를 비교해 보시는 걸 추천드립니다.


차근차근 풀어봅시다.

 

algorithm
알고리즘



백준 BAEKJOON 2557

 

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

 

 

2557번: Hello World

Hello World!를 출력하시오.

www.acmicpc.net

 

문제 해석

Hello World! 란 문자열을 출력하라는 문제

 

풀이

print('Hello World!')

백준 BAEKJOON 1000

 

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

 

 

1000번: A+B

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

www.acmicpc.net

 

문제 해석

정수 두 개를 입력받아 더하고 출력하는 문제

 

풀이

a, b = input().split()
print(int(a)+int(b))

또는

a, b = map(int, input().split())
print(a+b)

 

풀이 해석 및 팁

파이썬의 map 함수를 사용하면 입력값을 바로 정수형으로 받아올 수 있다.

백준 BAEKJOON 1001

 

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

 

 

1001번: A-B

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

www.acmicpc.net

 

문제 해석

정수 2개를 입력받아 빼고 출력하라는 문제

 

풀이

a, b = map(int, input().split())
print(a-b)

백준 BAEKJOON 10998

 

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

 

 

10998번: A×B

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

www.acmicpc.net

 

문제 해석

정수 2개를 입력받아 곱하고 출력하라는 문제

 

풀이

a, b = map(int, input().split())
print(a*b)

백준 BAEKJOON 1008

 

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

 

 

1008번: A/B

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

www.acmicpc.net

 

문제 해석

정수 2개를 입력받아 나누고 출력하라는 문제

 

풀이

a, b = map(int, input().split())
print(a/b)

백준 BAEKJOON 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 = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(a//b)
print(a%b)

또는

a, b = map(int, input().split())
print("{}\n{}\n{}\n{}\n{}".format(a+b, a-b, a*b, a//b, a%b))

 

풀이 해석 및 팁

print문을 여러 개 쓰고 싶지 않다면 문자열 포맷팅을 사용해 한 줄로 처리 가능

백준 BAEKJOON 10926

 

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

 

 

10926번: ??!

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

www.acmicpc.net

 

문제 해석

문자열을 입력받고 특정 문자를 이어 붙여서 출력하라는 문제

 

풀이

str = input()
print(str+"??!")

또는

print(input()+"??!")

 

풀이 해석 및 팁

input()은 문자열을 반환하므로 바로 더하기 연산이 가능하다.

백준 BAEKJOON 18108

 

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

 

 

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

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

www.acmicpc.net

 

문제 해석

입력받은 정수에 특정 정수를 뺀 값을 출력하라는 문제

 

풀이

a = int(input())
print(a-543)

또는

print(int(input())-543)

백준 BAEKJOON 3003

 

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

 

 

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰

첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.

www.acmicpc.net

 

문제 해석

입력받은 정수들을 원하는 정수로 맞추기 위해 필요한 수를 출력하는 문제
양수는 더할 수, 음수라면 뺄 수

 

풀이

a = [1, 1, 2, 2, 2, 8]
b = list(map(int,input().split()))

for i in range(len(a)):
	print(a[i]-b[i], end=" ")

 

풀이 해석 및 팁

파이썬의 print문은 사실 기본적으로 print("문자열", end="\n") 처럼 작동하고 있다.
end=" " 로 수정하면 개행이 되는 게 아니고 공백 한 칸이 문자열 뒤에 출력되는 것을 문제 풀이에 이용

백준 BAEKJOON 10430

 

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

 

 

10430번: 나머지

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

www.acmicpc.net

 

문제 해석

정수 3개를 입력받고 문제에서 원하는 수식의 값을 출력하라는 문제

 

풀이

a, b, c = map(int, input().split())

print((a+b)%c)
print(((a%c)+(b%c))%c)
print((a*b)%c)
print(((a%c)*(b%c))%c)

백준 BAEKJOON 2588

 

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

 

 

2588번: 곱셈

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

www.acmicpc.net

 

문제 해석

곱셈의 과정에서 각 자리별 곱셈의 결과와 최종적인 결과를 출력하라는 문제

 

풀이

a = int(input())
b = int(input())

print((b % 10) * a)
print(((b % 100) // 10) * a)
print((b // 100) * a)
print(a * b)

 

풀이 해석 및 팁

나머지 연산자 %
몫 연산자 //
두 연산자를 잘 조합해 각 자리의 수를 얻을 수 있습니다.

백준 BAEKJOON 10171

 

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

 

 

10171번: 고양이

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

www.acmicpc.net

 

문제 해석

이스케이프를 사용해 고양이 모양의 문자열을 출력하는 문제

 

풀이

print("\\    /\\\n )  ( ')\n(  /  )\n \\(__)|")

 

풀이 해석 및 팁

문자열에 \ (백슬래시) 를 표현하고 싶다면 이스케이프를 사용해야 합니다.
따라서 문자열에 \\  를 입력해줘야 한 개의 \ 가 출력됩니다.

백준 BAEKJOON 10172

 

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

 

 

10172번: 개

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

www.acmicpc.net

 

문제 해석

이스케이프를 사용해 강아지 모양의 문자열을 출력하는 문제

 

풀이

print("|\\_/|")
print("|q p|   /}")
print("( 0 )\"\"\"\\")
print("|\"^\"`    |")
print("||_/=\\\\__|")

 

풀이 해석 및 팁

문자열에 " 큰따옴표나 ' 작은따옴표를 표기하기 위해 이스케이프를 사용

백준 BAEKJOON 25083

 

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

 

 

25083번: 새싹

아래 예제와 같이 새싹을 출력하시오.

www.acmicpc.net

 

문제 해석

이스케이프를 사용해 문자열로 새싹모양을 출력하는 문제

 

풀이

print("         ,r\'\"7")
print("r`-_   ,\'  ,/")
print(" \\. \". L_r\'")
print("   `~\\/")
print("      |")
print("      |")


여기까지 백준 단계별 문제 중 입출력과 사칙연산의 문제 풀이였습니다.

 

알고리즘 문제 풀이에는 다양한 분야의 문제가 존재하기 때문에 공부하다 보면

 

컴퓨터과학에 대한 지식이 절로 쌓이게 될 것입니다.

 

앞으로 문제 풀이를 하다가 등장하는 중요한 지식들에 대해서는 개념정리를 위해

 

따로 포스팅 주제로 다뤄 업로드하도록 하겠습니다.

 

궁금한 점이나 도움이 필요하신 부분은 댓글로 남겨주세요.


감사합니다.

반응형