[파이썬] 백준 1193번 「분수찾기」

2023. 12. 10. 15:31· 코딩테스트 - 백준
목차
  1. 문제
  2. 문제해설
  3. 풀이 전략
  4. 코드
  5. 결과
  6. 고찰
728x90
반응형

문제

백준 1193번/실버5

https://www.acmicpc.net/problem/1193

 

1193번: 분수찾기

첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.

www.acmicpc.net

 

 

 

문제해설

글로 봐도 이해가 바로 가기는 할텐데, 그림같은 순서대로 갈 때, n번째에는 어떤 분수인지 출력하는 문제이다.

 

 

 

풀이 전략

대각선의 순서를 i라고 하자.

1번째 대각선에서는 1개, 2번째 대각선에서는 2개, 세 번째 대각선에서는 3개, i번째 대각선에서는 i개의 분수가 존재한다. 즉 i번째의 순서는 1+2+3+...(i-1)  +1 부터 시작하여 1+2+3+...+i 에 끝난다. 

n이 몇 번째 대각선에 있는지 1부터 i까지의 합 공식 i*(i+1)/2 를 이용하여 i를 구하고, i의 시작지점, i의 끝지점까지 반복하면서 n번째에는 어떤 분수가 있는지 구하면 된다.

단, i가 짝수일 때는 1/i 로  시작하여 분모는 -1씩, 분자는 +1씩 늘어다는 규칙이고,

i가 홀수 일때는 i/1로 시작하여 분모는 +1씩, 분자는 -1씩 줄어든다는 규칙이므로, i를 구하고, i의 홀수 짝수 여부에 따라서 분모 분자가 정해지고 n까지 어떻게 분수가 바뀌는지 파악해주면 되는 문제이다.

 

 

코드

import sys;

n = int(sys.stdin.readline().rstrip()); #n입력

#몇 번째 라인에 있는지 계산
i = 0; #분자 또는 분모의 최대값 계산하는 변수
end = 0; #분자 또는 분모가 최대일 때의 몇 번째 번호
while i*(i+1)//2 < n :
    i+=1;
    end+=i;

# 시작지점 번호, 순서
start = end - i+1;


#i가 짝수일때
if i%2 == 0:
    child = 1; #분자가 1
    parent = i; #분모가 i 
    while start < n:  #n보다 작을 때동안 분모-1, 분자+1
        start+=1;
        parent -=1;
        child +=1;
        
#i가 홀수일 때
else: 
    child = i; #분자 i
    parent = 1; #분모 1
    while start < n: #n 보다 작을 떄 동안 분모+1, 분자 -1
        start+=1;
        parent +=1;
        child -=1;
        
        
print(f"{child}/{parent}") #출력

 

 

 

결과

 

 

고찰

규칙만 잘 찾으면 쉬우나, while 문 조건이 헷갈릴 수 있음.

728x90
반응형
저작자표시 비영리 (새창열림)

'코딩테스트 - 백준' 카테고리의 다른 글

[파이썬] 백준 2563번 「색종이」  (3) 2023.12.11
[파이썬] 백준 9613번 「GCD의 합」  (0) 2023.12.09
[파이썬] 백준 11656번 「접미사 배열」  (1) 2023.12.08
[파이썬] 백준 1074번 「Z」  (4) 2023.12.07
[파이썬] 백준 14425번 「문자열 집합」  (6) 2023.12.06
  1. 문제
  2. 문제해설
  3. 풀이 전략
  4. 코드
  5. 결과
  6. 고찰
'코딩테스트 - 백준' 카테고리의 다른 글
  • [파이썬] 백준 2563번 「색종이」
  • [파이썬] 백준 9613번 「GCD의 합」
  • [파이썬] 백준 11656번 「접미사 배열」
  • [파이썬] 백준 1074번 「Z」
성밍쟁
성밍쟁
성밍쟁 공붕방
성밍쟁
너드인의 밤
성밍쟁
전체
오늘
어제
  • 분류 전체보기 (182)
    • 일상 (1)
    • 스펙업 (7)
      • 학회 (0)
      • 멋쟁이사자처럼 (2)
      • 2024 winter-study (5)
    • 코딩테스트 - 백준 (9)
    • 보안 스터디 (56)
      • 시스템 해킹 (10)
      • 리버스 엔지니어링 (0)
      • 웹 해킹 (38)
      • 암호학 (8)
    • bandit (15)
    • 웹 개발 (11)
    • 머신러닝 (0)
    • 데이터베이스 (9)
    • KnockOn (72)
    • DevOps (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 드림핵
  • /bin
  • 1074
  • 11656
  • 1193
  • 2563
  • 3Des
  • 9613
  • AES
  • Alias

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
성밍쟁
[파이썬] 백준 1193번 「분수찾기」
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.