항해99/99club1기TIL

[99club/TIL] 4주차 - 일요일 TIL(Today I Learned)

delay100 2024. 4. 22. 01:27
728x90
반응형
SMALL

안녕하세요. delay100 입니다. 


미들러 문제. 제리와 톰 2 

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

 

17504번: 제리와 톰 2

$$ 1 - \cfrac{1}{2 + \cfrac{1}{7 + \cfrac{1}{1 + \cfrac{1}{8}}}} =  1 - \cfrac{1}{2 + \cfrac{1}{7 + \cfrac{8}{9}}} = 1 - \cfrac{1}{2 + \cfrac{9}{71}} = 1 - \cfrac{71}{151} = \cfrac{80}{151} $$

www.acmicpc.net

분모와 분자를 바꿔주며 계산하면 됩니다.

import java.io.*;
import java.util.*;

public class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int N = Integer.parseInt(br.readLine());
		int[] list = new int[N];
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		for(int i=0; i<N; i++){
			list[i] = Integer.parseInt(st.nextToken());
		}
		long deno = list[N-1]; // 분모
		long nume = list[N-1]*list[N-2] + 1; // 분자

//		bw.write("nume= "+nume+" /deno= "+deno+"\n");
		for(int i=N-3; i>=0; i--) {
			// 분자, 분모 바꿔주기
			long temp = deno;
			deno = nume;
			nume = temp;
			
			nume = list[i]*deno + nume;
//			bw.write("list[i]= "+list[i]+"/ nume= "+nume+" /deno= "+deno+"\n");
		}
		
		bw.write((nume-deno)+" "+nume);
		
		br.close();
		bw.close();
	}
}

 


+ 비기너 문제

번호표 교환 (https://www.acmicpc.net/problem/11949)

 

11949번: 번호표 교환

첫 번째 줄에 학생의 수와 카드의 수를 나타내는 정수 N, M (1 ≤ N ≤ 100, 1 ≤ M ≤ 100) 이 공백으로 구분되어 입력된다. 두 번째 줄부터 N줄에 걸쳐서 각 학생이 가지는 번호표의 값 Ai (1 ≤ Ai ≤

www.acmicpc.net

+ 챌린저 문제

거리두기 확인하기 (https://school.programmers.co.kr/learn/courses/30/lessons/81302)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


감사합니다. 피드백 환영합니다.

 

728x90
반응형
LIST