https://www.acmicpc.net/problem/14723
14723번: 이산수학 과제
N번째 유리수가 a/b일 때, 분자 a, 분모 b를 공백으로 구분하여 a, b를 출력하여라.
www.acmicpc.net
예전부터 이와 유사한 문제가 꽤 있었던 것 같다. 대각선 방향으로 나눠서 같은 줄에 있는 수들을 생각해보면 분자+분모의 합이 모두 같다는 것을 알 수 있고, 합계를 늘려주면서 리스트에 분자 분모쌍을 넣어주고 리턴해주면 되는 문제였다.
문제 및 입출력
코드
import java.util.ArrayList;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
// 분자분모쌍으로 들어갈 리스트
ArrayList<int[]> list = new ArrayList<int[]>();
int n = sc.nextInt();
int sum = 2; // 루프별 분자+분모 합계
int cnt = 0; // 리스트에 삽입된 분자분모쌍의 갯수
while(cnt<n)
{
// 루프별로 분자+분모의 합계는 모두 동일
for(int i=sum-1; i>0; i--)
{
list.add(new int[]{i, sum-i});
cnt++;
}
sum++;
}
System.out.println(list.get(n-1)[0] + " " + list.get(n-1)[1]);
sc.close();
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[프로그래머스] 레벨4 우유와 요거트가 담긴 장바구니 (7) | 2021.11.04 |
---|---|
[백준] 10798 세로읽기 (0) | 2021.11.04 |
[백준] 14720 우유 축제 (2) | 2021.11.03 |
[백준] 14716 현수막 (0) | 2021.11.01 |
[백준] 11279 최대 힙 (0) | 2021.11.01 |
댓글