자바 백준 1037번 약수


약수의 개수가 홀수 일때는 가장 가운데 있는 값의 곱이 찾는 수가 될것이고 개수가 짝수 일 때는 처음과 맨끝에 있는 값의 곱이 찾는 수가 될것이다.


자바 백준 1085번 직사각형에서 탈출


문제만 잘 이해하면 쉽게 풀 수 있는 문제이다.

꼭지점과 w h 좌표의 꼭지점 으로 직사각형을 만들어 그 안에 x y를 놓고 상하좌우 방향으로 직사각형과 거리가 가장 짧은 것을 구하면 되는 문제이다.


'백준 알고리즘 > JAVA' 카테고리의 다른 글

자바 백준 1094번 막대기  (0) 2018.08.03
자바 백준 1037번 약수  (0) 2018.08.02
JAVA 백준 1977번 완전제곱수  (0) 2018.07.29
JAVA 백준 2455번 지능형 기차  (0) 2018.07.25
JAVA 백준 1934번 최소공배수  (0) 2018.07.24

JAVA 백준 1977번 완전제곱수

math.sqrt(); 를 잘 써주면 쉽게 풀 수 있는 문제이다

두 가지 방법이 있다.


첫 번째 코드이다.


두 번째 코드이다.

JAVA 백준 2455번 지능형 기차



최소공배수를 구하는 방법중에는 두 수의 최대공약수를 구한다음 두 수를 곱해주고 최대공약수 만큼 그 수를 나눠주면 구할 수 있는 공식이있다.

A와 B 두 수 중에서 작은 수가 적어도 그 수만큼 반복을 해줘야지 최대공약수를 구할 수 있다. 즉 , Math()로 입력받은 두 수 중에 작은 수를 찾은 뒤 최대공약수를 

아래와 같이 찾을 수 있다. 코드를 보자.

 

JAVA 백준 1676번 팩토리얼 0의 개수


처음에 팩토리얼 한 값을 문자열에 저장해 하나씩 0과 비교하서 COUNT 세려고 했는데 N의 값이 일정치 이상 넘어가니 변수형 long도 감당하지 못하게 된다. 그래서 규칙을 찾으려 노력했다. 처음에 하나의 규칙을 찾았다.

이렇게 2의 배수와 5의 배수가 만나면 뒤에 0이 들어가는 값이 만들어진다. 

이것을 보면 5가 곱해져 있는 만큼 0이 더해지는 것을 알 수 있다. 즉, 5가 한번 곱해졌으면 0의 count가 1증가, 어느 값에 5가 2번 곱해져 있으면 0의 count가 2증가한다는 것을 볼 수 있다. (뒤에 값을 기준으로 한다)

나중에 50값은 5가 2번 곱해져 있는것과 동시에 2도 하나 곱해져 있다. 100의 값은 5가 2번, 2가 2번 곱해져있다. 50이나 100을 5의 배수가 몇번 곱해져 있는지 알고 위해 2와 5를 계속 나눠주는 것이다.





먼저 이 문제를 풀기 위해서 이항 계수가 뭔지 알아야 한다. 이항계수는 경우의 수를 계산할 때 N개의 서로 다른 물건 중에서 K개의 물건을 선택하는 것을 N개에서 K개를 선택하는 조합 이라고 한다. 즉, N개 중에서 서로다른 K개를 고르는 조합의 수 이다.


백준 다이나믹 프로그래밍

https://www.youtube.com/watch?v=0o2hF-To_6Q


다이니막 프로그래밍

1. Top - Down 방식

2. Bottom - Up 방식

https://www.youtube.com/watch?v=K15qLnKKrow


1.Top-Down 방식

Top-Down 방식은 문제를 작게 나눈뒤 풀고 하나로 합치는 것이다.



2.Bottom-Up 방식

Bottom-Up 방식은 작은 문제에서 큰 문제로 순차적으로 문제를 푸는 것이다.


위쪽이 Bottom-Up  아래쪽이 Top-Down 방식

JAVA 백준 10866번 덱


https://skyvvv624.blog.me/220950557929

큐와 덱의 자세한 설명이 나와있다.


JAVA 백준 2748번 피보나치 수 2


n이 90일 때는 int형 값을 넘어가므로 long을 써야한다.

+ Recent posts