Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 15312
  • 백준 8892
  • 백준 15655
  • 백준 6550
  • 백준 1531
  • 백준 15961
  • 백준 14582
  • 백준 3049
  • 자바
  • 백준 1747
  • 백준 12605
  • Java
  • 백준 1495
  • 백준 2467
  • 백준 16194
  • 백준 7567
  • 백준 12871
  • 백준 4659
  • 백준 2225
  • 백준 2343
  • 백준 1064
  • 백준 3135
  • 백준 2591
  • 백준 10709
  • 백준 1011
  • 백준 16926
  • 백준
  • 백준 24039
  • 백준 7662
  • 백준 1914
hELLO · Designed By 정상우.
Park DJ
백준

백준 1193 분수찾기(Java)

백준 1193 분수찾기(Java)
백준

백준 1193 분수찾기(Java)

2023. 1. 13. 22:52

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

 

1193번: 분수찾기

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

www.acmicpc.net


 

해석 및 팁

 


 

이문제는 지그재그의 규칙을 찾아내는것이 핵심이다.

그룹으로 나누어보면 1번그룹에는 1/1 2번그룹에는 1/2, 2/1 3번그룹에는3/1, 2/2, 1/3이 있다고하면

n번 그룹의개수는 n개이며 n이 홀수이면 분자가 1씩 줄어들고 분모가 1씩늘어나며

짝수이면 분자가 1씩 늘어나고 분모가 1씩 감소한다.

따라서 n번째 그룹까지의 수의 개수는 첫째항이 1이고 등차가 1인 등차수열의 합인 n*(n+1)/2 이므로

주어진수와의 차를 이용하면 해결할 수있다.

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int numerator = 0;          //분자
    int denominator = 0;        //분모
    int check = 0;
    int n = 0;
    int x = sc.nextInt();

    while(check < x) {
      n++;
      check = n*(n+1)/2;         //a=1, d=1 인 등차수열의 합 = n*(n+1)/2;
    }

    int gap = x - ((n-1)*n/2);
    
    if(n % 2 == 1) {
      numerator = n - gap +1;       //홀수행이면 분자가 1씩 줄어들고 분모가 1씩 늘어난다
      denominator = gap;            
    }

    else if(n % 2 == 0) {
      numerator = gap;              //짝수행이면 분자가 1씩 늘어가고 분모가 1씩 감소한다
      denominator = n - gap +1;
    }
    
    System.out.println(numerator+"/"+denominator);
  }  
}

'백준' 카테고리의 다른 글

백준 2609 최대공약수와 최소공배수(Java)  (1) 2023.01.14
백준 2775 부녀회장이 될테야(Java)  (0) 2023.01.14
백준 2869 달팽이는 올라가고 싶다(Java)  (0) 2023.01.13
백준 4344 평균은 넘겠지(Java)  (0) 2023.01.13
백준 1110 더하기 사이클(Java)  (0) 2023.01.13
    '백준' 카테고리의 다른 글
    • 백준 2609 최대공약수와 최소공배수(Java)
    • 백준 2775 부녀회장이 될테야(Java)
    • 백준 2869 달팽이는 올라가고 싶다(Java)
    • 백준 4344 평균은 넘겠지(Java)
    Park DJ
    Park DJ

    티스토리툴바

    단축키

    내 블로그

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

    블로그 게시글

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

    모든 영역

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

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