BufferedReader + StringBuilder
시간 제한이 0.15초로 Scanner를 사용할 시 속도초과가 나온다. 그래서 BufferedReader를 사용하여 문제를 푼다. 올라갈 높이 : A 미끄러지는 높이 :B 총 높이 : V 주의할 점 단순히 V / (A-B) 로 구할 수 있는데, 문제에서 정상에 올라간 후에는 미끄러지지 않는다. 라는 조건으로 인해서 한번 더 생각을 하고 풀어야 했다...
테스트 데이터 갯수 : T 호텔의 층 수 : H 각 층의 방수 : W 몇번째 손님 : N 해결 층 수 구하기 : N % H (그러나 N % H가 0이면 H가 된다.) (문제에서 나왔듯이 방번호는 YXX or YYXX가 되므로, *100을 해준다.) 방 번호 구하기 : N / H + 1 (그러나 N % H가 0이면 N/H가 된다.) 이를 종합해보면 N...
총 무게 : weight 3kg 개수 : x 5kg 개수 : y 주의할 점 두 개의 개수를 구해야 하기 때문에 일단 이중 for문을 돌린다. 문제에서 봉지의 최소 개수를 출력한다 라는 문구를 통해, 이중 for문의 안쪽 for문은 5kg의 개수인 y가 기준이 된다. 그러면 x는 최소, y는 최대인 case를 먼저 찾을 수 있다. 코드
주의할 점 A,B의 최대값을 보면 10의 10000승이다. long의 범위는 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 으로 long 보다 크기가 클 수 있다. long 보다 큰 범위를 가지는 숫자를 표현할 때는 BigInteger를 사용하면 된다. 코드
방법1. 일반적인 식 1, 본인 제외 한 수로 나눈 나머지가 모두 0이 아닌 경우 방법2. 알고리즘 ‘에라토스테네스의 체’ 이용 [참고] https://velog.io/@dayoung_sarah/알고리즘-에라토스테네의-체
해결 입력값의 범위는 10000이하로, 대량의 범위에서 소수를 구해야 할 경우 알고리즘 ‘에라토스테네스의 체’를 이용하면 효율적으로 구할 수 있다. > [참고] https://velog.io/@dayoung_sarah/알고리즘-에라토스테네의-체 코드
해결 소인수분해는 소수인 인수로 분해하는 것을 말하며, 그렇기에 출력되는 소수의 범위는 입력값의 제곱근 이하로 볼 수 있다. ⇒ Math.sqrt() 이용하기 코드
해결 M,N의 입력값은 1000000이하의 자연수이다. 대량의 소수를 구할때는 알고리즘 ‘에라토스테네스의 체’를 이용하면 효율적으로 구할 수 있다. > [참고] https://velog.io/@dayoung_sarah/알고리즘-에라토스테네의-체 코드
해결 입력값은 최대 123456이지만, 문제내에서 구해야 할 범위는 입력값 두 배이다. 그래서 123456*2 까지의 소수를 구해야 한다. 소수 여부 배열을 생성 후, 각 인덱스마다 소수가 몇 개인지 저장하는 배열을 하나 더 생성해서, 해당 배열을 사용하여 소수의 개수를 구한다. > [참고] https://velog.io/@dayoung_sarah/알고...
해결 정렬문제를 풀 때, Java에서 기본적으로 제공해주는 Arrays.sort()를 사용하였다. 해당 문제에서도 동일하게 Arrays.sort()를 사용하여 문제를 풀었는데, 소요시간이 아주 오래 걸렸다. 잘 하면 시간제한에 걸릴 것 같았다. Arrays.sort()는 dual-pivot Quicksort 알고리즘을 사용하여, 평균 시간복잡도가 O(...