본문 바로가기
IT관련 공부/백준(BaekJoon)

10430번, 2588번

by 행복한 위드 2022. 10. 12.

10430

A B C 3개를 입력받고 출력만 하면되는 정말 간단한 문제이다. 

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

print((A+B)%C)
print(((A%C) + (B%C))%C)
print((A*B)%C)
print(((A%C)*(B%C))%C)

map 함수에 대해 설명하자면 여러가지의 자료형의 값을 받을 때 사용되는 함수이다.

이 문제는 따로 코멘트를 하지않겠습니다.

 

2588번

 

이문제 되게 어렵게 생각했던 문제이다.

배열 만들어서 4 7 2 를 a[0] a[1] a[2] 385도 마찬가지로 b[0] b[1] b[2] 이렇게 넣고 폴문을 이용해서 돌릴려고 했는데..

잘 안되고(당연히 잘 안됬지.. 방법이 잘못됬는데) 화장실에서 큰일을 보다 472*5가 2360이 나오는 것을 깨닫고 바로 와서 코딩을 진행하였다.

원래 생각했던 코드

a = int(input('첫 번째 숫자를 입력하세요: '))
b = int(input('두 번째 숫자를 입력하세요: '))

c = [a%1000//100,
      a%100//10,
      a%10]
d = [[b%1000//100,
      b%100//10,
      b%10]]

c.reverse()
d.reverse()

N = 0
A, B = []

for i in range(0,3):
	for j in range(0,3):
         if A[i] * B[j] >= 10:
             if j == 0:
                N = A[i] * B[j] % 10
             if j == 1:
                 N = A[i] * B[j] % 100//10
             if j == 2:
                 N = A[i] * B[j] % 1000//100
         else:
             up = A[i] * B[i]
                 
# 이렇게 하다가 안될 것 같아서 문제를 다시보니 첫번째 숫자에 두번째 숫자의 일의 자리, 십의 자리, 백의 자리를 넣으면 되는것을 깨달았다..;ㅅ;

잘못된 예시

 

a = int(input())
b = int(input())

d = [b%10,
     b%100//10,   #십의 자리 구하기 b가 385라면 85//10 = 8
     b%1000//100] #백의 자리 구하기 b가 385라면 385%1000 = 385//100 = 3 //는 나눗셈 후 정수만 구하는 계산식 

print(a*d[0])
print(a*d[1])
print(a*d[2])
print(a*b)

잘된 예시

 

보면 d의 값에 %가 있는 걸 보고 있는데 472값을 넣었을 경우 b%100 이라고 가정을 해보자 %는 나눗셈한뒤 나머지 값을 구하는거니 몫은 4 나머지는 72가 될것이다.

그러니 남는 값은 72 여기에 // 슬래시 두번은 나눗셈한 뒤 정수만 구하는 문법이므로 72를 10으로 나눈뒤 몫부분 즉 7만 남게되어 십의자리가 7인 것을 구할 수 있는 것이다.

아래 백의 자리도 마찬가지라고 생각하면 된다.

이부분에 관한것은 나중에 블로그 내 언어 Python 부분에 자세히 서술할 예정이다.

 

'IT관련 공부 > 백준(BaekJoon)' 카테고리의 다른 글

1330번, 9498번, 2753번  (0) 2022.10.14
10171번, 10172번, 25083번  (0) 2022.10.12
10926번, 18108번, 3003번  (0) 2022.10.12
1000번, 1001번, 10998번, 1008번, 10869번  (0) 2022.10.12
백준 10718번 문제  (0) 2022.09.06