10430번: 나머지
첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)
www.acmicpc.net
python 으로 백준 문제를 풀면서 계속 어려웠던 점은
1) 입력 숫자 범위를 넣어야 하는 것과 넣지 않아도 되는 것(이건 여전히 헷갈려서 눈치껏 하고있다)
2) RUNTIME ERROR가 나는 것
-> 여러 가지 변수를 첫 줄에 입력해달라는 말이 있는데 그렇게 하지 않거나(내 경험상)
INPUT에 제한을 두지 않으면 처리 시간이 오래 걸려서 그렇다는 해결을 얻었다.
처음에는 이 문제를
A = int(input())
B = int(input())
C = int(input()) ... 이렇게 했더니 오류가 발생했다.
"첫째 줄에 A,B,C가 순서대로 주어진다"는 조건 자체를 이해하지 못해서 일어났던 문제.
A,B,C = map(int,input().split())
이렇게 map과 split을 통해 input을 정수로 설정하고, 한 번에 + 한 줄로 정리했다.
*map = map(적용할 함수 이름, 대응할 일련의 요소(input으로 받을 값))
+ input으로 받은 걸 split를 통해 각각 변수에 지정
(역시 어떻게 응용하느냐에 달린 것 같다. . .)
그리고 이 문제에서는 "2 이상 10000이하"라는 제한을 두고 있기에 if문을 통해 각각 변수의 범위 지정을 해 주었다.
if (A >= 2 and A<= 10000) and (B >= 2 and B <= 10000) and (C >= 2 and C <=10000):
if문의 조건을 통과하면,
print((A+B) % C)
print(((A % C) + (B % C)) % C)
print((A*B) % C)
print(((A % C) * (B % C)) % C)
print로 각각의 결과를 출력으로 얻을 수 있다.
전체 코드는
A,B,C = map(int,input().split())
if (A >= 2 and A<= 10000) and (B >= 2 and B <= 10000) and (C >= 2 and C <=10000):
print((A+B) % C)
print(((A % C) + (B % C)) % C)
print((A*B) % C)
print(((A % C) * (B % C)) % C)
if 안에서 괄호를 통해 and 안의 and를 사용할 수 있다는 걸 배웠다 ..!
결론: 문제에서 물어보는
1번 값과 2번 값은 동일하며,
3번 값과 4번 값 역시 동일함을 알 수 있다.
'python > 연습문제 풀이' 카테고리의 다른 글
[백준] python 2884번: 알람 시계 (0) | 2022.10.20 |
---|---|
[백준] python 3003번 (0) | 2022.10.18 |
(연습문제) 사용자 정의 class (2) | 2022.09.30 |
(연습문제) 사용자정의함수, 반복문 별찍기 (0) | 2022.09.05 |
(연습문제) list 원소 추가 및 요소 검사하기 (0) | 2022.09.02 |
댓글