링크 : https://www.acmicpc.net/problem/1193
- 문제
- 설계하기(접근방법)
1. 규칙 찾기
1번째 줄은 1/1 총 1개 누적:1개
2번째 줄은 1/2 2/1 총 2개 누적:3개
3번째 줄은 3/1 2/2 3/1 총 3개 누적:6개
4번째 줄은 1/4 2/3 3/2 4/1 총 4개 누적:10개
5번째 줄은 5/1 4/2 3/3 2/4 1/5 총 5개 누적:15개
n 번째 줄은 총 n 개의 분수가 있고 분모와 분자의 합은 n + 1이다.
홀수번째 줄은 분자가 분모보다 크고
짝수번째 줄은 분모가 분자보다 크다.
즉 x번째 분수 위치를 뜻하는 x를 입력받는다면
반복문을 통해 몇번째 줄인지 찾아낸다.
그리고 그줄이 홀수인지 짝수인지 구분한 다음에
그 줄에서 몇번째에 해당하는지 찾아 분수를 구해낸다.
- 코드(출력)
x = int(input()) # 14
sum = 0
n = 1
while (n):
sum += n # 1, 3, 6, 10, 15까지
if (sum >= x):
break
n += 1 # 2, 3, 4, 5번째
test = n + 1 # 분모와 분자의 합 = 6
location = x - (sum - n) # 14-10=4, 5번째 줄에서 4번째 수
if (n % 2 == 0): # n번째가 짝수라면
print("{0}/{1}".format(location, test - location))
else:
print("{0}/{1}".format(test - location, location))
- 얻어갈 부분
1. 설계를 확실하게 하고, 예제를 따라가니 실수없이 코딩할 수 있었다.
2. while문의 특성을 잘 못써서 break문을 썼는데, 다음에는 없이 코드를 작성하자
'알고리즘(백준) > 기타' 카테고리의 다른 글
[백준] 10250번 : ACM 호텔 - python (0) | 2023.02.07 |
---|---|
[백준] 2869번 : 달팽이는 올라가고 싶다 - python (0) | 2023.02.06 |
[알고리즘/] 번 : - python (0) | 2023.02.05 |
[백준] 2292 번 : 벌집 - python (0) | 2023.02.05 |
[백준] 2941 번 : 크로아티아 알파벳 - python (0) | 2023.02.05 |