-
[Python] 백준 : 입출력과 사칙연산 2,588번, 곱코딩테스트/백준 2024. 1. 22. 11:47
[문제 풀기 전 생각한 부분]
1. split을 사용하지 않고 두 줄에 걸쳐서 사용자의 입력을 받아야겠군.
2. 근데 472*385 일의 자리에서 부터 하나씩 어떻게 곱하지?
3. 예제 출력은 일의 자리부터 하나씩 출력하게 하면 될 거 같은데..
[my_code]A = map(int,input()) # print에서 매번 int 쓰기 귀찮아서 붙였다. B = map(int,input()) print(A*B) # 이렇게 하면 오류가 나는 데 왜 나는지 모르겠다.
[문제점]1. map을 저렇게 따로 선언했을 때, 왜 오류가 나는지 모름.
2. 일의자리에서 백의 자리까지 하나씩 곱하는 방법을 모름.
[문제점 해결]1. 해결하지 못함. 이해가 잘 안됨.
2. 이 문제에서 입력할 A, B는 각각 472와 385로 정해져 있음.
A= input() B= input() print(int(A)*int(B[2])) # A와 B의 일의자리 곱셈 출력 472*5 print(int(A)*int(B[1])) # A와 B의 십의자리 곱셈 출력 472*8 print(int(A)*int(B[0])) # A와 B의 백의자리 곱셈 출력 472*3 print(int(A)*int(B)) # A와 B의 곱셈 출력 472*385
#예제 출력 472 385 2360 3776 1416 181720
[보너스]B1) 각각의 자리를 구한다음 다 더하면 어떨까? 동일하게 나올 걸 알았지만 신기하다.
A= input() B= input() C = int(A)*int(B[2]) # A와 B의 일의 자리 곱셈 = C print(int(C)) D = (int(A)*int(B[1]))*10 # A와 B의 십의 자리 곱셈 = D print(int(D)) E = (int(A)*int(B[0]))*100 # A와 B의 백의 자리 곱셈 = E print(int(E)) print(int(C+D+E)) # 각각 결과값을 더한 값
B1 예제출력 472 385 2360 37760 141600 181720
B2) 좀 더 간단하게 할 수는 없을까? (feat. 반복문) <참고사이트에서 오 더 간단하게 표현할 수 있구나 해서 해봄>
A = input() B = input() for i in range(2,-1,-1): # i = 2, 1, 0 print(int(A)*int(B[i])) # B = 385 B[0]=5, B[1]=8, B=[2]=3 print(int(A)*int(B))
여기서 3번쨰 라인 for i range(0,3) 했으면 i = 0, 1, 2 값을 갖는다. 하지만 @@@ 중요해요.(제가 헷갈려서)
for i range(0,3)을 하게 되면 B[0] = 5, A*B[0] 부터 하게 돼요.......(1)번
(뭐가 이상한지 모르겠다구요?? 백준에 안올렸으면 저도 뭔지 모르고 넘겼을 거 같습니다. 오 출력되네 하면서..)(1)번의 경우는 B의 백의 자리부터 곱한 값이 나오게 됩니다. 하지만 문제에서는 일의 자리부터 출력되어야 하죠 !
따라서, A*B[2]를 할려면 역순으로 해야됩니다.
for i in range(2,-1,-1) : <- 의 의미는 i = 2,1,0 입니다. range 역순해주는 건 range 괄호 맨뒤 -1입니다. 앞 두개는 범위@
B2 출력예시 472 385 2360 3776 1416 181720
[사용된 함수]1. for문
for 변수 in 리스트(또는 튜플, 문자열): 수행할_문장1 수행할_문장2 ...
for i in range(2,-1,-1): # i = 변수, range범위 print(int(A)*int(B[i])) # 수행할 문장 1
2. range()
range(1,11) # 1,2,3,4,5,6,...10 range(11,1,-1) # 11,10,9,8,7,...2
[참고사이트]
*map
https://dojang.io/mod/page/view.php?id=2286
*for문
[문제를 마치며]
한번에 안풀리니 안 찝찝하고 아주 좋다. 각 자리의 자리수를 어떻게 표현하는 지 배우고,for문 맛도 보고, range 역순 표현하는 방법도 맛보니 아주 괜찮다.
+ 위 모든 정보는 잘못된 정보를 제공할 수 있으니, 공부에 참고만 부탁드립니다.
+ 틀린 부분 | 여기서 더 생각하면 좋을 부분도 댓글로 적어주시면 감사하겠습니다.'코딩테스트 > 백준' 카테고리의 다른 글
[Python] 백준 : 반복문 모음집 (1) 2024.01.27 [Python] 백준 : 조건문 1,330번, 두 수 비교하기 (0) 2024.01.22 [Python] 백준 : 입출력과 사칙연산 10,171번, 고양이 (0) 2024.01.22 [Python] 백준 : 입출력과 사칙연산 18,108번, 1998년생인 내가 태국에서는 2541년생?! (0) 2024.01.21 [Python] 백준 : 입출력과 사칙연산 10,926번, ??! (0) 2024.01.21