3233. 정삼각형 분할 놀이 (Python 파이썬 풀이)
출처
문제
한 변의 길이가 A인 정삼각형의 내부를 한 변의 길이가 B인 정삼각형으로 나누려고 한다.
이 때 필요한 한 변의 길이가 B인 정삼각형의 최소 개수를 구하는 프로그램을 작성하라.
B는 A의 약수이다.
A = 2, B = 1 일 때의 한 변의 길이가 B인 정삼각형의 최소 개수는 아래 그림과 같다.
입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스마다 첫 번째 줄에 두 자연수 A, B(1 ≤ B ≤ A ≤ 106, B|A)가 주어진다.
출력
각 테스트 케이스마다 몇 개의 삼각형이 필요한지 출력하라.
2 //TestCase의 개수 2 1 // A = 2, B = 1 3 3 // A = 3, B = 3 |
#1 4 // TestCase1의 답 #2 1 |
문제 해석
삼각형 밑 면을 생각해서 풀면 된다. TestCase 1을 보면 윗층에는 삼각형 1개, 다음 층에는 삼각형 3개가 들어간다. 만약 다음 층이 더 있다면 다음에는 삼각형 5개가 채워질 것이고, 다음에는 7개 순으로 2 X (층수) - 1 식으로 증가한다.
주어지는 입력값 A는 B의 약수이므로, A를 B로 나누면 정수값이 나온다. 이 값을 quotient라고 정의하고 이제 문제를 풀어보자
문제 풀이
1
2
3
4
5
6
7
|
for Count in range(int(input())): # 주어지는 TestCase 개수만큼 전체 실행
A,B = map(int,input().split()) # 입력값 A,B 입력
quotient = A//B # A를 B로 나눈 값
answer = 0 # 내가 원하는 정답
for i in range(quotient):
answer += 2*i+1 # 2X(층수)-1 은 다시쓰면 2x(층수-1)+1 과 같다.
print("#{} {}".format(Count+1,answer)) # 정답 출력
|
cs |
출처
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
'SWExpert > D3' 카테고리의 다른 글
[D3] 2005. 파스칼의 삼각형 (0) | 2020.09.07 |
---|---|
1209. [S/W 문제해결 기본] 2일차 - Sum (Python 파이썬 풀이) (0) | 2020.09.04 |
[D3] 1206. [S/W 문제해결 기본] 1일차 - View (Python 파이썬 풀이) (0) | 2020.09.02 |
[D3] 3142. 영준이와 신비한 뿔의 숲(Python 파이썬 풀이) (0) | 2020.09.01 |
[D3] 4371. 항구에 들어오는 배 (Python 파이썬 풀이) (0) | 2020.08.27 |