백준 알고리즘 사이트 10430번 문제를 파이썬으로 코딩해 보도록 하겠습니다.
문제는 아래와 같습니다.
https://www.acmicpc.net/problem/10430
10430번: 나머지
첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)
www.acmicpc.net
정답
#1
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)
#2
a, b, c = input().split()
a = int(a)
b = int(b)
c = int(c)
print((a+b)%c)
print(((a%c)+(b%c))%c)
print((a*b)%c)
print(((a%c)*(b%c))%c)
문제풀이
A, B, C = input().split() # 입력되는 문자를 input()함수로 입력받고 split()함수로 나누어 A,B,C 변수에 저장
input() 함수 : 사용자로부터 문자열을 입력받을 때 사용하게 된다.
- 변수 = input() 이렇게 작성하면 입력받은 문자를 변수에 선언할 수 있게 된다.
- 문자열 형태로 입력받으므로, 숫자 1과 2를 입력받는 게 아니라 '1 2'라는 숫자 두 개 사이에 공백이 있는 하나의 문자열을 입력받는다.
split() 함수 : 입력받는 문자를 나눌 때 사용하는 함수이다.
- 문제를 보면 숫자 두 개를 한 줄에 입력받는데 두 개의 숫자 사이에는 공백으로 구분되어 있다. 이런 경우 공백을 기준으로 숫자를 나누면 된다.
- 문자열 뒤에 점을 붙이고 split( )을 써주면 된다.
- input( ). split( )은 입력받는 문자가 아직 정해지지 않았으나 어떤 문자이건 공백을 기준으로 나누겠다는 의미이다.
- 괄호 안에 아무것도 넣지 않으면 공백(띄어쓰기, 탭 등)을 기준으로 문자열을 나눈다.
- A, B = input( ). split( ) 문장에서 = 왼쪽에 A, B 두 개로 구분한 것은 튜플(tuple) 자료형의 성질을 이용한 것이다.
- = 우측에서 입력받은 문자를 공백을 기준으로 나누게 되면 두 개의 문자로 나누어지게 된다. 그 두 개의 문자를 각각 A, B 변수에 저장하겠다는 의미이다.
int() 함수 : 문자형을 숫자형으로 변형할 수 있다. int는 숫자 중에서도 정수를 의미한다.
- 문제에서 요구하는 것은 두 개의 정수를 + 연산자로 더하는 것이다. 문자열에서도 + 연산자를 사용할 수 있으나 그러면 '1'과 '2'를 더해서 '12'가 된다.
- int() 를 사용하여 숫자로 변환하면 출력했을 때 두 수를 더한 값이 출력된다.
map() 함수 : 파이썬의 내장 함수로 여러 개의 데이터를 한번에 다른 형태로 변환할 때 사용한다.
- 여러 개의 데이터를 담고 있는 리스트(List)나 튜플(tuple)을 대당으로 주로 사용하는 함수입니다.
- map() 함수의 기본문법은 map(변환함수, 순회 가능한 데이터)
- map() 함수는 첫번째 인자로 넘어온 변환 함수를 두번째 인자로 넘어온 모든 테이터를 상대로 적용해 줍니다.
'[백준] 파이썬 - 단계별로 풀어보기' 카테고리의 다른 글
[백준] 파이썬 18108번(1998년생인 내가 태국에서는 2541년생?!) - 단계별로 풀어보기 (0) | 2023.07.07 |
---|---|
[백준] 파이썬 10926번(??!) - 단계별로 풀어보기 (0) | 2023.07.07 |
[백준] 파이썬 10869번(사칙연산) - 단계별로 풀어보기 (0) | 2023.07.07 |
[백준] 파이썬 1008번(A/B) - 단계별로 풀어보기 (0) | 2023.07.07 |
[백준] 파이썬 10998번(A*B) - 단계별로 풀어보기 (0) | 2023.07.07 |