전체 글 248

백준-2193번/이친수 (java)

문제 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되므로 이친수가 아니다. N(1 ≤ N ≤ 90)이 주어졌을 때, N자리 이친수의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. 출력 첫째 줄에 N자리 이친수의 개수를 출력한다. 이차원 배열을 만들어줬다. long[][] arr..

알고리즘/백준 2024.02.14

노트북 베터리 성능 확인 방법

1) cmd창을 관리자 권한으로 실행해준다(꼭 관리자 권한으로 실행!!) 2) powercfg -energy을 치고 엔터를 눌러준다 (중간에 띄어쓰기 주의) 3) 60초 동안 기다리기 4) C : .... 로 시작하는 주소를 복사해서 브라우저에 검색 5) 창의 아래로 내리다보면 배터리 정보가 나오는 것을 확인 6) (마지막 완전 충전)/(설계 용량값)을 계산기로 구하면 베터리 성능을 확인 할 수 있다. 60~70% 가 교체 권장시기이다.

컴퓨터 2024.02.13

백준-10844번/쉬운 계단 수 (java)

문제 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 출력 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. 다이나믹 프로그래밍 문제이므로 배열을 생성 해야한다. 이 문제에서는 첫번째 자리의 숫자 뒤에 올수 있는 계단수를 구하기 위해 이차원 배열을 만들어 줘야 한다. 문제를 풀때 가장 고민을 많이 했던 부분은 0으로 시작하는 수는 아니지만 1로 시작할때는 뒤에 0으로 시작하는 계단수가 필요하다는 점 이다! 따라서 0으로 시작하는 ..

알고리즘/백준 2024.02.13

프록시 캐시, 캐시 무효화

한국에서 미국에 있는 원 서버와 통신을 하려고 하면 시간이 오래 걸린다.이러한 문제를 해결하기 위해 프록시 서버를 사용한다. 프록시 캐시 서버는 public 캐시이다!!  캐시 무효화• Cache-Control: no-cache, no-store, must-revalidate• Pragma: no-cache• HTTP 1.0 하위 호환 1) no cacheno-cache는 원 서버와의 단절이 일어났을때 오래된 데이터라도 보여주면서 200OK를 보낸다 2) must-revalidatemust-revalidate 는 원 서버와의 단절이 일어나면 항상 오류를 발생시킨다.

BackEnd/HTTP 2024.02.12

백준-15990번/1, 2, 3 더하기 5 (java)

전에 풀었던 1,2,3 더하기는 연속된 숫자를 허용했지만 이번 문제에서는 연속된 숫자를 사용하지 못한다는게 어려웠다. 4가 입력 되었을때의 경우의 수 1+(2,3으로 시작되는 합이 3인 경우) 2+(1,3으로 시작되는 합이 2인 경우) 3+(1,2으로 시작되는 합이 1인 경우) 이렇게 하면 연속되는 수가 없이 합의 경우의 수를 구할 수 있다. 이런 식으로 점화식을 만들려면 이차원 배열을 이용해야 한다 for(int i=4; i

알고리즘/백준 2024.02.09

백준-11052번/카드 구매하기

최대 지불 금액의 경우의 수를 모두 구해서 비교한다면 시간초과 오류가 발생할 것이다. 따라서 다이나믹 프로그래밍의 절차인 점화식을 만들어서 원하는 값을 구해야 겠다고 생각했다. 배열 p ==> i요소의 값은 카드 i개를 구매할때의 가격 배열 dp ==> N개의 카드를 구매할때의 최대금액 저장 배열 dp[1](카드 1개를 구매할때의 최대 금액) ==> p[1] dp[2](카드 2개를 구매할때의 최대 금액) ==> p[1](카드 한장의 금액) + dp[1](카드 한장 살때의 최대금액)과 p[2](카드 2장의 금액) 중의 최대값 dp[3](카드 3개를 구매할때의 최대 금액) ==> p[3](카드 3장 구매할때 가격)과 (dp[2]+p[1]),(dp[1]+p[2]) 중 최대 금액 . . . . 이러한 과정으로 ..

알고리즘/백준 2024.02.08

백준-9095번/1, 2, 3 더하기

문제를 보자마자 저걸 다 계산하는 프로그램은 시간이 엄청 걸릴 것이라고 생각했다 따라서 점화식을 만들어서 그에 대한 배열로 각 각의 요소의 값을 넣는 방식으로 코드를 짜야겠다고 구상 n=4 일때 맨 앞 이 1 + (n=3일때 방법의 수) 맨 앞 이 2 + (n=2일때 방법의 수) 맨 앞 이 3 +(n=1일때 방법의 수) 점화식 ==> arr[i]=arr[i-1]+arr[i-2]+arr[i-3]; 코드 package baekjoon; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWri..

알고리즘/백준 2024.02.05