알고리즘 풀이

[algorithm] 백준: 10430 나머지

째깍단 2023. 4. 2. 19:18

 10430 답:

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

one = (A + B) % C
two = ((A % C) + (B % C)) % C
three = (A * B) % C
four = ((A % C) * (B % C)) % C

print(one, two, three, four, sep='\n')

 

 

 

문제 분석 및 과정

 

- 10430 문제 내용에서 필요없는 내용을 지운다. (출력값에 필요한 것이 아닌 단순한 의문이므로.)

  • (A+B)%C는 ((A%C) + (B%C))%C 와 같을까?
  • (AxB)%C는 ((A%C) x (B%C))%C 와 같을까?
  • 세 수 A, B, C가 주어졌을 때,
  • 출력 : 각각의 값을 차례로 4줄로 출력.
  • 입력 : 첫째줄에 A, B, C가 순서대로 주어진다. 2<= A,B,C <= 10000
  • 위의 네 가지 값을 구하는 프로그램을 작성하시오.

- 연산자 의미 알아보기

 %  나머지를 구하는 연산자

 

 

- A, B, C가 각각의 계산식에 들어가 4줄을 차례로 출력임을 주석에 명확히 정리하기

"""

1줄  (A+B)%C   A+B를 C로 나누었을 때의 나머지

2줄  ((A%C) + (B%C))%C   (A/C의 나머지 + B/C의 나머지)를 C로 나눈 나머지

3줄  (AxB)%C   AxB를 C로 나누었을 때의 나머지

4줄  ((A%C) x (B%C))%C   (A/C의 나머지 x B/C의 나머지)를 C로 나눈 나머지

 

4가지 값을 차례로 각각의 줄에 출력하는 프로그램을 만들어라

"""

 

 

풀이

입력: 에, 첫 줄에 input 값이 들어올 것임을 알려주고 있다

그러니 이전에 사용했던   a, b, c = map(int,input().split()) 을 사용해  a, b, c 변수에 각각 int형태로 저장

 

각각의 출력값을 내기만 하면되니까

계산식에 각각의 변수를 준다.

> one = (A+B)%C  ... 

 

이렇게 각각 출력을 적어주거나

print(one)

print(two)

print(three)

print(four)

 

조금더 깔끔하게 하면

result라는 하나의 변수에 f스트링으로 묶어주고 \n

print(result)

 

>그런데 이렇게 하면 자꾸 오류가 난다;

그래서 print() 안에 각 변수 , 로 나누어 넣고

 

 end =... 는 마지막만 적용이니까..

 sep='\n'을 붙여주어서 각 줄에 출력되도록 해준다.

 

 

*** \ 슬래시 뒤에 붙는 것을 이스케이프 문자라고 한다.

참고 및 정리해두기 >> https://ooyoung.tistory.com/12


느낀점: 

금방 풀었는데, 오류날 부분이 없는데 자꾸 오류가 나서 굉장히 당황했다

변수를 잘 못 넣었는지도 확인하고

warning도 고쳐보았는데 오류가 계속 남...ㅠㅠ

그래서 print 안에 묶어서 출력하는 방식을 도전해보았다.

왜.. 오류가 난걸까