(1).백준 3787번 Count on Canton는 아래 모양처럼 대각선으로 숫자를 배치할 때 n번째 숫자의 값을 구해야 하는 문제였다.

1/1 1/2  1/3 

2/1 2/2

3/1

 

간단하게 첫번째 숫자부터 1, 2, 3, 4개마다 총 합이 2, 3, 4, 5로 증가했기 때문에

숫자의 총 합을 count로 관리했고 n번째 숫자인지 체크하는 것은 남은 숫자를 left에 담아 관리했다.

 

홀, 짝에 따라 증감 방향이 달라졌기 때문에 count를 2로 나눈 나머지를 기준으로 홀 짝을 구분해서

분모 분자의 위치를 바꾸는 방식으로 문제를 해결했다.

const input = `3
14
7`.split('\n').map(Number)

const result = []

for(let i = 0 ; i < input.length ; i++){
    let left = input[i]
    let count = 2
    for(let j = 1 ; j < left ; j++){
        left -= j
        count++
    }
    if(count % 2){
        result.push(`TERM ${input[i]} IS ${left}/${count - left}`)
    }
    else{
        result.push(`TERM ${input[i]} IS ${count - left}/${left}`)
    }
}
console.log(result.join('\n'))

'회고' 카테고리의 다른 글

[개발일지] - 616  (0) 2025.03.10
[개발일지] - 615(주말)  (0) 2025.03.09
[개발일지] - 613  (0) 2025.03.07
[개발일지] - 612  (0) 2025.03.06
[개발일지] - 611  (0) 2025.03.05

+ Recent posts