본문 바로가기
알고리즘/매일마다 풀기(백준)

[2023-04-30] 1193 분수찾기 + 3문제

by joh9911 2023. 4. 30.

 

문제 링크: https://www.acmicpc.net/problem/1193

 

1193번: 분수찾기

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

www.acmicpc.net

 

 

// 숫자 1이 분모일 때는 1개
// 숫자 2가 분모일 때는 2개
// 숫자 3이 분모일 때는 3개
// 분모가 짝수일 때 왼쪽 하단으로 이동
// 분모가 홀수일 때 오른쪽 상단으로 이동
// 반복문을 통해, 입력받은 숫자가 영역에 포함 될 경우를 구하기

// ex) x가 분모가 3인 영역에 포함될 경우
// x는 4 ~ 6사이에 있음
// 분모의 짝수, 홀수 판별

package twentyFirst_thirtyth.thirtyth
import java.io.*
fun main(){
    val br = BufferedReader(InputStreamReader(System.`in`))
    val x = br.readLine().toInt()
    var sum = 0
    var num = 1 // 분모
    while(true){
        val prevSum = sum
        sum += num
        
        //ex) 분모가 3일 때
        // 4 ~ 6 사이에 있으면
        if (x in prevSum+1.. sum){
            val v = x - prevSum
            
            // 짝수 홀수 판별
            if (num % 2== 0){
                println("${v}/${num - v + 1}")
            }
            else{
                println("${num - v + 1}/$v")
            }
            break
        }
        num++
    }
}

 

댓글