💡 코테
백준(17504번 - 제리와 톰 2)
MNY
2024. 4. 21. 22:14
728x90
반응형
💡 오늘의 학습 키워드
- 백준
* 17504번 - 제리와 톰 2 : 미들러 문제(실버5)
오늘의 회고
문제1 : [17504번 - 제리와 톰 2]
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
숫자의 개수와 [a1, a2, a3, ..] 이렇게 그 숫자의 개수에 맞게 수를 입력 받았을 때
1 - (a1 + (a2 + 1 / a3)) 이런 식으로 계산하고 분자와 분모를 출력하는 문제이다.
처음에는 단순하게 계산 결과를 출력하는 줄 알았다.
프로그래머스로 풀다 백준으로 푸니 문제 잘 못 읽었다..
그러고 그 다음 생각한 것은 분자, 분모를 변수로 두고 값을 넣은 후 계산한 걸 분자, 분모 값을 바꿔준다.
이때 이걸 홀수번째랑 짝수번째를 나누려고 생각했는데 그럴 필요가 없다는 걸 수식을 따라가며 그려보고 이해한다.
그러고 마지막에 1 즉, 분모의 값에서 분자의 값을 빼준 것을 분자의 값에 넣어 업데이트 해준다.
이제 그걸 분자, 분모 순으로 출력하면 오늘의 문제 끝!
- 어떻게 해결했는지
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.nextLine();
int[] arr = new int[N];
long first = 1; // 분모
long second = 1; // 분자
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
first = arr[N-1];
for (int i = N-2; i >= 0; i--) {
long temp = 0;
second = first * arr[i] + second;
temp = second;
second = first;
first = temp;
}
second = first - second;
System.out.println(second);
System.out.println(first);
}
}
- 무엇을 새롭게 알았는지
오늘의 문제에서 새롭게 알게된 것은
nextInt으로 값을 받고 Enter을 입력해서 새로운 값을 입력 받고 싶다면
nextLine으로 줄바꿈(Enter)을 없애주어야 한다!
또한, nextInt는 공백으로 숫자를 받을 수 있다.
오늘부터 비기너, 미들러의 문제는 백준에서 출제된다!
안 그래도 요즘 백준으로 조금씩 풀고 있었는데 오히려 좋다!!!
내일 학습할 것은 무엇인지 (최대 3개)
- 정보처리기사 실기 공부
- 클럽99 코딩테스트(비기너) 문제풀이
- 내배캠 자바 수강
728x90
반응형