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
- 편스토랑
- SW Expert Academy
- 백준
- AI 경진대회
- ChatGPT
- 프로그래머스 파이썬
- 파이썬
- 프로그래머스
- leetcode
- dacon
- ubuntu
- github
- 코로나19
- Real or Not? NLP with Disaster Tweets
- Baekjoon
- 자연어처리
- gs25
- hackerrank
- Kaggle
- 편스토랑 우승상품
- Docker
- PYTHON
- 더현대서울 맛집
- Git
- 우분투
- 캐치카페
- 금융문자분석경진대회
- programmers
- 데이콘
- 맥북
Archives
- Today
- Total
솜씨좋은장씨
[BaekJoon] 20953번 : 고고학자 예린 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 고고학자 예린입니다.
👨🏻💻문제 풀이
오 수도 코드도 있겠다 엄청 쉽게 풀 수 있겠네? 라고 생각했지만
역시나 그렇게 호락호락하지 않은 문제였습니다.
int dolmen(int a, int b) {
int sum, i, j, k;
sum = 0;
for (i = 0; i < a + b; i++) {
for (j = 0; j < a + b; j++) {
for (k = 0; k < j; k++) {
sum++;
}
}
}
return sum;
}
위 코드를 보고 Python으로 구현하면 아래와 같습니다.
def dolmen(a: int, b: int):
sum_num = 0
for i in range(a+b):
for j in range(a+b):
for k in range(j):
sum_num += 1
return sum_num
하지만 이렇게 제출하면 3중 for 문에 의해서 시간초과가 발생합니다.
어떻게 하지... 생각하다 보니 반복문이 돌아가는 횟수를 그냥 계산하면 되겠다 싶었습니다.
def dolmen(a: int, b: int):
return (a + b) * (a + b - 1) * (a + b) // 2
이렇게 하니 시간초과 문제는 해결이 되었습니다.
힌트
입력과 출력의 양이 방대하므로 빠른 입출력을 사용할 것을 권장한다.
빠른 입출력에는 sys.stdin.readline을 활용하였습니다.
import sys
input = sys.stdin.readline
👨🏻💻코드 ( Solution )
import sys
input = sys.stdin.readline
def dolmen(a: int, b: int):
return (a + b) * (a + b - 1) * (a + b) // 2
def archaeologist_yerin(a, b):
return dolmen(a=a, b=b)
if __name__ == "__main__":
for _ in range(int(input())):
a, b = map(int, input().split())
print(archaeologist_yerin(a=a, b=b))
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 21866번 : 추첨을 통해 커피를 받자 (Python) (0) | 2022.09.19 |
---|---|
[BaekJoon] 21964번 : 선린인터넷고등학교 교가 (Python) (0) | 2022.09.18 |
[BaekJoon] 15702번 : 중간고사 채점 (Python) (0) | 2022.09.16 |
[BaekJoon] 25325번 : 학생 인기도 측정 (Python) (1) | 2022.09.15 |
[BaekJoon] 25206번 : 너의 평점은 (Python) (0) | 2022.09.14 |
Comments