Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Docker
- ChatGPT
- 우분투
- dacon
- 자연어처리
- Git
- 편스토랑 우승상품
- leetcode
- gs25
- hackerrank
- 코로나19
- 프로그래머스 파이썬
- github
- 편스토랑
- 백준
- 파이썬
- 더현대서울 맛집
- Baekjoon
- Real or Not? NLP with Disaster Tweets
- 데이콘
- 캐치카페
- SW Expert Academy
- AI 경진대회
- PYTHON
- programmers
- 맥북
- ubuntu
- 금융문자분석경진대회
- 프로그래머스
- Kaggle
Archives
- Today
- Total
솜씨좋은장씨
[BaekJoon] 1225번 : 이상한 곱셈 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 이상한 곱셈입니다.
첫번째 시도
def strange_multiplication(string):
result = 0
number1, number2 = string.split()
for num1 in number1:
for num2 in number2:
result += int(num1) * int(num2)
return result
if __name__ == "__main__":
string = input()
print(strange_multiplication(string))
먼저 숫자 두개를 입력 받은 뒤에 공백으로 split합니다.
각 숫자에서 각 자리수의 수를 꺼내서 곱한 값들을 쭉 더하여 결과를 도출합니다.
결과는!
아쉽게도 시간초과였습니다.
첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는다.
위의 조건을 보고 생각해보니 가장 오래걸리는 경우 10,000 * 10,000 == 100,000,000 입니다.
그리고 다시 생각해보니 abc * def 일 때
문제로 구하라는 값 (ad + ae + af + bd + be + bf + cd + ce + cf ) == ( a + b + c ) * ( d + e + f ) 와
같다는 것을 꺠달았습니다.
Solution
def strange_multiplication(string):
result = 0
number1, number2 = string.split()
num1 = list(map(int, number1))
num2 = list(map(int, number2))
return sum(num1) * sum(num2)
if __name__ == "__main__":
string = input()
print(strange_multiplication(string))
위의 아이디어를 바탕으로 각 자리수의 수를 모두 더한 값들을 곲한 값으로 해결하였습니다.
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 18406번 : 럭키 스트레이트 (Python) (0) | 2021.07.06 |
---|---|
[BaekJoon] 14726번 : 신용카드 판별 (Python) (0) | 2021.07.05 |
[BaekJoon] 2153번 : 소수 단어 (Python) (0) | 2021.07.03 |
[BaekJoon] 10798번 : 세로읽기 (Python) (0) | 2021.07.02 |
[BaekJoon] 7785번 : 회사에 있는 사람 (Python) (0) | 2021.07.01 |
Comments