티스토리 뷰

반응형

 

[Python] 백준 알고리즘 온라인 저지 10430번 : 나머지

 

Python3 코드

A,B,C = map(int,input().split())

print((A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C, sep='\n')
# sep='\n'로 줄바꿈

 

 

Python3 코드 풀이

1. 작성한 코드에 대한 풀이 정리

백준 알고리즘 단계별로 문제를 풀고 있는 분들이라면 수학의 사칙연산을 계속해서 풀고 있을 것이다. 이번 문제는 출력에서 식을 적어주기 때문에 그대로 복사해서 붙여 넣으면 되니 어려울 게 없는 문제이다. 단, 그동안의 문제에서 조금 달라지는 점이 있다면 그동안은 두 개의 수를 입력받는 것이었는데 이 문제는 세 개의 수를 입력받는다는 것이다. 세 개의 수로 달라졌다고 해서 코드에 큰 변화가 생기진 않는다. input, split 함수와 튜플의 성질을 이해하고 있는 분들은 쉽게 풀었을 문제라고 생각한다.

 

2. 코드 첫째줄, 세 수를 입력 받는다.

A,B,C = map(int,input().split())

그동안 풀었던 문제에서 두 수를 입력받을 때에 등호(=)의 좌변에 A, B와 같이 변수 두 개를 지정했다면 이 문제는 A, B, C로 변수 세 개를 지정해주면 된다. 그리고 map 함수를 이용하지 않고 입력받은 문자를 숫자로 변환할 때 int 함수로 사용할 수도 있지만 나의 경우 map 함수를 사용하는 게 간편하다. map 함수를 쓰지 않는 경우는 아래와 같이 표현할 수 있겠다.

A, B, C = input().split()
A = int(A)
B = int(B)
C = int(C)

참고로 input 함수는 입력받을 때 문자열로 입력을 받는다. 사용자가 숫자를 입력하더라도 문자열로 입력받게 된다. 그래서 숫자끼리의 연산을 해야 하는 이번 문제의 경우 입력받은 문자를 int 타입으로 변환을 해준 것이다. split 함수는 문자열을 나누는 함수로 sep= 파라미터로 문자열을 구분하는 기호를 입력할 수도 있고 아무것도 입력하지 않으면 공백을 기준으로 문자를 나누게 된다.

 

3. 코드 두째줄, 출력문을 작성한다.

print((A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C, sep='\n')
# sep='\n'로 줄바꿈

print 함수를 이용해서 출력해야 하는 계산식을 쉼표로 구분하여 입력하였다. 이때 출력 값을 세로로 하나씩 출력해야 하기 때문에 sep=파라미터에 '\n' 값을 입력해서 줄 넘김 이스케이프 문자를 출력 값 사이에 삽입했다. print 함수의 sep 파라미터는 출력 값이 여러개인 경우 각 출력값 사이에 삽입할 문자를 지정할 수 있다. 기본값은 공백이기 때문에 print 함수를 사용해서 sep 파라미터를 입력하지 않으면 여러 개의 문자를 출력할 때 한 칸씩 공백을 두고 값이 가로로 출력할 수 있게 된다. 

 

이스케이프 문자는 백 슬러시와 문자를 조합하여 사용하는 문자를 말한다. 이스케이프 문자에 따라 각각 다른 기능을 가지고 있다. \n 은 줄 넘김을 의미하는 이스케이프 문자이다. 이밖에도 몇 가지의 이스케이프 문자가 더 있는데 이스케이프 문자에 대한 내용을 정리해 놓은 적이 있어서 혹시라도 필요하신 분들을 위해 이전 포스팅 링크를 걸어둔다.  ▶ 이스케이프 문자 내용 정리

 

반응형
댓글
반응형