본문 바로가기
  • Adillete
【스터디노트】/▷TIL

코테 스터디 72일차 TIL + 오늘의 학습 키워드 분수찾기

by 아딜렛 2025. 12. 27.

- 오늘의 학습 키워드

 


- 공부한 내용 본인의 언어로 정리하기

 

     입력: X
1. 대각선 =1, sum =0 으로 초기화
2. X가 속한 대각선 찾기:
 while (sum + 대각선 <X):
  sum = sum+대각선
  대각선=대각선 +1
3. 대각선 내 위치 계산
position =X-sum
4. 분자/ 분모 계산

 



- 오늘의 회고
  - 어떤 문제가 있었고, 나는 어떤 시도를 했는지

순차적으로 합해지는것도 알았는데 위치 찾는거랑, 분자 분모를 못건들임


  - 어떻게 해결했는지

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int X = sc.nextInt();  // X번째 분수를 찾아야 함
        
        // 1. X가 속한 대각선 번호와 그 대각선에서의 위치 찾기
        int diagonal = 1;  // 현재 대각선 번호
        int sum = 0;       // diagonal번째 대각선까지의 총 분수 개수
        
        // X가 속한 대각선을 찾을 때까지 반복
        while (sum + diagonal < X) {
            sum += diagonal;  // 이전 대각선까지의 누적 개수
            diagonal++;       // 다음 대각선으로 이동
        }
        
        // 2. 해당 대각선 내에서 X의 위치 (1부터 시작)
        int position = X - sum;
        
        // 3. 분자와 분모 계산
        int numerator;    // 분자
        int denominator;  // 분모
        
        if (diagonal % 2 == 0) {
            // 짝수 번째 대각선: 위→아래 (분자 증가, 분모 감소)
            numerator = position;              // 1부터 시작해서 증가
            denominator = diagonal - position + 1;  // diagonal부터 시작해서 감소
        } else {
            // 홀수 번째 대각선: 아래→위 (분자 감소, 분모 증가)
            numerator = diagonal - position + 1;    // diagonal부터 시작해서 감소
            denominator = position;                 // 1부터 시작해서 증가
        }
        
        // 4. 결과 출력
        System.out.println(numerator + "/" + denominator);
        sc.close();
    }
}


  - 무엇을 새롭게 알았는지
  - 내일 학습할 것은 무엇인지