[ algorithm ] 백준 단계별 문제 풀이 (입출력과 사칙연산)
안녕하세요. 심심한 코딩쟁이입니다.
오늘은 백준 사이트에서 입출력과 사칙연산에 관련된 문제들의 풀이를 살펴보려 합니다.
파이썬3 를 사용해 문제 풀이를 진행하겠습니다.
문제마다 링크를 걸어두었으니 문제를 살펴보시고 문제를 푼 다음에 저와
풀이를 비교해 보시는 걸 추천드립니다.
차근차근 풀어봅시다.
백준 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(" |")
여기까지 백준 단계별 문제 중 입출력과 사칙연산의 문제 풀이였습니다.
알고리즘 문제 풀이에는 다양한 분야의 문제가 존재하기 때문에 공부하다 보면
컴퓨터과학에 대한 지식이 절로 쌓이게 될 것입니다.
앞으로 문제 풀이를 하다가 등장하는 중요한 지식들에 대해서는 개념정리를 위해
따로 포스팅 주제로 다뤄 업로드하도록 하겠습니다.
궁금한 점이나 도움이 필요하신 부분은 댓글로 남겨주세요.
감사합니다.
'programming > algorithm' 카테고리의 다른 글
[ algorithm ] 백준 단계별 문제 풀이 (1차원 배열 1탄) (0) | 2023.02.14 |
---|---|
[ algorithm ] 백준 단계별 문제 풀이 (반복문 2탄) (0) | 2023.02.10 |
[ algorithm ] 백준 단계별 문제 풀이 (반복문 1탄) (0) | 2023.02.09 |
[ algorithm ] 백준 단계별 문제 풀이 (조건문) (0) | 2023.01.26 |
[ algorithm ] 알고리즘 문제 풀이 사이트 (1) | 2023.01.04 |