관리 메뉴

Silver Library (Archived)

10869, 2588 사칙연산 - Python [특이사항] 본문

F2. Problem & Solving/Solving

10869, 2588 사칙연산 - Python [특이사항]

Chesed Kim 2021. 12. 26. 19:21
반응형

이 문제는 주어진 조건대로 입력해서 출력을 해 내는것이 특징. 전작과 다를 건 없지만, 표기법에서 배울점이 있다.

 

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 하는 것과 차이가 있다. 다시 복습해봐야 겠다.

 

<알고리즘> 백준 2588번 곱셈(파이썬)

백준 #2588 문제 바로가기 문제 : (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하

goplanit.site

 

'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