본문 바로가기

전체 글

(157)
[java] 백준/2271 로프 큰수 부터 x1 그다음 큰수 x2 ... 제일작은수xn 중에서 제일 큰수를 출력하면됩니다.
[java] 백준/5585 거스름돈 위문제는 동전0문제와 매우 유사하다. 큰몫순서대로 나눈다음에 그 몫을 다 더하면 끝이다. 물론 몫을 더하고 나머지값을 가지고와서 다시 작은 값으로 나눠야 한다. 그 몫만큼 빼는 절차다
[java] 백준/11047 동전 0 위소스는 큰수별로 나눈다음에 몫이 있을떄 카운트를 세고 하나씩 빼서 구현하도록 했다. 하지만 이소스보다 더 간단하게 하는 방법이 있었다. k를 큰수로 나눈다음에 그 몫만큼 카운트를 더하고 그 나머지값을 k로 다시 치환시켜서 진행하는 구조로하면 더 빠르게 처리할수 있다, 두개 소스의 차이다...
[java] 백준/11399 ATM 답을 찾는 규칙을 찾으면 제일 작은순서부터 죽 SORT 한다음 첫번쨰수*N ..두번쨰수*(N-1)..세번쨰수&(N-1)...+마지막수*1이된다.
[java] 백준/9507 Generations of Tribbles 다른 dp와 다르게 문제에 알고리즘이 나와있다. 문제를 잘 읽고 풀자 !! N = 4 dp[n] = dp[n-4]+dp[n-3] + dp[n-2] + dp[n-1]
[java] 백준/1904 01타일 필자는 직접 적어가면서 다이나믹 공식을 찾았다. dp[n] = dp[n-1] + dp[n-2] n = 1 1 n = 2 00 11 n = 3 100 001 111 n = 4 0000 0011 1100 1001 1111 n = 5 00100 00001 00111 10000 10011 11001 11111 n = 6 000000 000011 001100 001001 001111 100100 100001 100111 110000 110011 111001 111111 이렇게 나온다.. 앞에 n-2 에서 앞에 00을 붙이고 n-1에서 앞에 1를 붙이면 된다.
[java] 백준/6359 만취한 상범 필자가 처음에 풀때는 1. n배수별로 if문을 통해서 문을 열고 닫고를 구현했다. 하지만 if문을 통해서 따로 벗어나도록 했고 문제를 풀고 난뒤에 다른 분들의 소스를 참고한 결과 더 좋은 방법이 있었다. 2. 배수는 배수부터 시작하고 그 배수만큼 증가시키면 되는 간단한 것이었다. 필자의 전 소스와 이후소스를 올릴테니 비교해서 참고해보길 바란다. 필자 전 소스 필자 수정 후 소스
[java] 백준/1309 동물원 다이나믹 프로그래밍 이문제는 다이나믹 프로그래밍으로 풀수 있다. 사자배치를 했을떄와 안했을떄를 o와 x 로 나누면 xx다음엔 xx ox xo ox다음엔 xx xo xo다음엔 xx ox 가 나올수 있다. 그러므로 이것을 다이나믹 dp로 공식을 세우게 된다면 dp[n][0] = dp[n-1][0] + dp[n-1][1] + dp[n-1][2] dp[n][1] = dp[n-1][0] + dp[n-1][2] dp[n][2] = dp[n-1][0] + dp[n-1][1] 로 나오게된다. 코드와 시키면 이렇게 나오는데 나누기하는것을 뺴먹어서 틀렸었다. 문제를 잘 읽도록 하자.