Silver Library (Archived)
10869, 2588 사칙연산 - Python [특이사항] 본문
반응형
이 문제는 주어진 조건대로 입력해서 출력을 해 내는것이 특징. 전작과 다를 건 없지만, 표기법에서 배울점이 있다.
A,B,C = map(int,input().split())
A,B,C = input().split()
A = int(A)
B = int(B)
C = int(C)
print((A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C, sep="\n")
필자가 이해한 기존의 방식은 다음과 같다.
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)
복습.
1. map 입력 후, 저런식으로 (int, input() 으로도 표기가 가능 하던 점. (파이썬)
2. 일일히 치는 거 없이, 저렇게 전원 입력 후, sep="\n" 으로 표기하면 콤마를 기점으로 줄 넘김 이스케이프 문자가 출력 값 사이에 삽입이 된다.
그리고 2588, 여기는 range 함수를 적용 해 볼 수 있었다.
num1 = int(input())
num2 = int(input())
print(num1 * (num2%10))
print(num1 * ((num2%100)//10))
print(num1 * (num2//100))
print(num1 * num2)
이 코드가 정답내기 목적의 코드였다면, 아래의 코드는 range 함수를 적용한 모범 사례이다.
이 부분은 배우는 단계로 임해야 헀다.
num1 = int(input())
num2 = input()
for i in range(len(num2), 0, -1):
print(num1 * int(num2[i-1]))
print(num1 * int(num2))
특징이라면, 숫자로 num1 에서 입력값을 받은 후, num2 에서 입력값을 그냥 string 으로 받는다.
그리고 for 반복문을 이용. 여기에서 range 함수를 적용한다.
range 에 포함 될 범위는 num2 에서 입력받은 값 만큼의 길이이다.
출력은 num1 * num2 값, 그리고 i - 1.
JS 에서 range 하는 것과 차이가 있다. 다시 복습해봐야 겠다.
'F2. Problem & Solving > Solving' 카테고리의 다른 글
오랜만의 공개글. (0) | 2022.03.12 |
---|---|
Types of algorithm (0) | 2022.02.14 |
Algorithm - change of plan (language) (0) | 2021.11.16 |
Linear & binary search with Python (0) | 2021.11.15 |
For in, For of 용도 (0) | 2021.09.22 |