백준 파이썬 코딩테스트 (분수찾기)

2025. 8. 20. 23:08·코딩테스트/BaekJoon

백준 1193번 문제

분수찾기


문제

 


풀이

1.

우선은 이 문제를 위해서 규칙성을 찾아보았다.

이미지로 되어있어서 규칙의 파악은 쉬웠다.

자 홀수번대는 분자가 메인, 짝수번대는 분모가 메인이다.

 

이 말인 즉슨 메인이 최대 값이라는 의미이다.

1/1은 패스를 하고 3을보자. 3은 홀수니까 3/1로 스타트를 한다.
이때 3/1 다음은 각 분자 -1, 분모 +1을 한 2/2 그리고는 1/3이다. 
다음은 4 즉 짝수니 1/4로 되는 것이다.

 

그리고 이를 통해서 최대 반복값도 알 수 있다. 1/4는 최대 4번 1/4 > 2/3  > 3/2 > 4/1 이 최대 갯수이다.

 

자 이를 이용해보자.

우선 area매개변수에 while을 사용해서 area가 인풋보다 커지면 스톱시킨다.

area에는 반복마다 area+1을 더한다. 즉 2번 반복하면 1+2로 3이 될 것이다.

 

이때 인풋이 12로 가정해보자. 이는 5번의 반복 즉 area가 15가 되면 멈출 것이다.

 

이 5번의 반복과 15를 이용해서 문제를 풀 것이다.

 

5번의 반복은 즉 홀수 5/1 스타트로 볼 수 있다. 5/1은 11번째 일것이다. (4반복시 최대값이 10이라)

즉  area의 숫자 마지막이 최대값 이된다. 4번반복은 1+2+3+4 는 10 이며 4/1은 10번째 숫자. 이런식으로.

 

그러면 최대값으로 해서 15는 1/5일 것이다. 여기서 인풋이 12 니까, 15를 빼게되면 3.

최대값에서 각 +3, -3을 하게되면 된다. 그러면 12번째의 숫자는 4/2가 될 것이다.

 

 

 

>> 

원래는 area += area + 1 을 했는데 생각해보니, 이러면 1, 3, 7 ... 으로 기하급수적으로 숫자가 커지는 거였다.

1+2+3... 을 하기 위해서 count를 사용했다. 결국 라인을 알기위해서는 필요했다.


결과

import sys
X = int(sys.stdin.readline())
area = 0
count = 0

while area < X:
    count += 1
    area += count
    
n = count - (area - X)
m = 1 + (area - X)

if count%2 == 0:
    print(f"{n}/{m}")
else :
    print(f"{m}/{n}")

 

 

Coding_Test/백준/Silver/1193. 분수찾기 at main · K-MarkLee/Coding_Test · GitHub

 

Coding_Test/백준/Silver/1193. 분수찾기 at main · K-MarkLee/Coding_Test

This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - K-MarkLee/Coding_Test

github.com

 

저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > BaekJoon' 카테고리의 다른 글

백준 파이썬 코딩테스트 (배수와 약수)  (1) 2025.08.26
백준 파이썬 코딩테스트 (달팽이는 올라가고 싶다)  (1) 2025.08.25
백준 파이썬 코딩테스트 (벌집)  (1) 2025.08.19
백준 파이썬 코딩테스트 (중앙 이동 알고리즘)  (0) 2025.08.19
백준 파이썬 코딩테스트 (세탁소 사장 동혁)  (1) 2025.08.18
'코딩테스트/BaekJoon' 카테고리의 다른 글
  • 백준 파이썬 코딩테스트 (배수와 약수)
  • 백준 파이썬 코딩테스트 (달팽이는 올라가고 싶다)
  • 백준 파이썬 코딩테스트 (벌집)
  • 백준 파이썬 코딩테스트 (중앙 이동 알고리즘)
코드 유랑자 승열
코드 유랑자 승열
코드 유랑자 승열의 프로그래밍 일지를 남기는 공간입니다.
  • 코드 유랑자 승열
    승열의 프로그래밍 시네마
    코드 유랑자 승열
  • 전체
    오늘
    어제
  • 링크

    • 깃허브 보러가기
    • 링크드인 보러가기
    • 카테고리
      • 코딩테스트
        • LeetCode
        • BaekJoon
      • TIL and WIL
        • TIL
        • WIL
      • 주말스터디
      • 내일배움캠프
        • 사전캠프 강의 (SQL)
      • 용어정리
        • Python
        • Python-Library
        • Machine-Learning
        • Deep-Learning
        • AI 활용
        • LLM & RAG
        • Docker
        • Django
        • SQL
        • Java Script
        • etc
      • Daily 코드카타
        • SQL
        • Python 알고리즘
      • 임시저장
      • 보류
  • 태그

    vector db
    llm
    View
    langchain
    django
    template
    오블완
    RAG
    티스토리챌린지
    word2vec
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코드 유랑자 승열
백준 파이썬 코딩테스트 (분수찾기)
상단으로

티스토리툴바