Coding Test/백준

·Coding Test/백준
문제설명입력 & 출력 나의 풀이 이번 문제는 길이가 N인 두 배열을 계산하는 점화식 A [N-1] × B [N-1]이 최솟값을 가지게 만드는 문제입니다. 위 점화식 그대로 사용하게 된다면 1*2 + 1*7 + 1*8 + 6*3 + 0*1 ➡️ 35가 나오게 됩니다. 이때 배열의 정렬을 하고 작은 값과 큰값을 서로 곱해주면 최솟값이 나옵니다. 먼저 빠른 입력을 위해 BufferedReader 클래스를 사용하여 입력을 받아주고 StringTokenizer 클래스를 사용하여 공백을 기준으로 분리를 해서 배열에 저장을 합니다. 그리고 Arrays.sort() 메서드를 사용하여 A를 오름차순으로 정렬해 주고, B배열을 내림차순으로 정렬합니다. (A와 B의 정렬이 바뀌어도 상관없습니다.) 이 때 오름차순은 상관없지..
·Coding Test/백준
문제설명입력 & 출력 나의 풀이  이번 문제는 봉지는 3kg, 5kg가 있으며 최대한 적은 봉지를 사용하면서 Nkg의 설탕을 정확하게 배달하는 문제입니다.  그리디 알고리즘의 문제로서 가장 적은 봉지를 사용하려면 kg가 큰 5kg 봉지를 최대한 많이 사용해야 하는 것은 당연합니다. 먼저 while문을 사용하여 반복문을 돌려줍니다. 이때 5로 나누어 떨어지는 경우 5로 나눈 몫을 봉지 개수 cnt에 누적을 합니다. 만약 5kg봉지로만 정확하게 배달할 수 있으면 최적의 경우이기 때문에 그대로 return 해줍니다.예를 들어 설탕이 15kg라면5kg봉지 3개만 필요합니다.그러나 5kg봉지로만 배달할 수 없다면 3kg 봉지를 어쩔 수 없이 사용해야 하기 때문에 설탕을 3만큼 빼주고 봉지 개수 cnt를 추가합니다..
·Coding Test/백준
문제설명입력 & 출력 나의 풀이  이번 문제는 5개의 정수가 주어졌을 때 5개 중 세 개로 나누어 지는 가장 작은 자연수를 구하는 문제입니다.제약 조건이 작음: 주어진 문제에서 숫자의 범위는 크지 않다.명확한 조건: 숫자를 1씩 증가시키면서 최소 3개의 숫자에 대해 나누어 떨어지는지 확인하는 조건이 명확위 조건에 부합하여 브루트 포스 알고리즘을 사용하면 쉽게 해결할 수 있습니다. 대부분의 코드에 대한 설명은 주석을 달아놨습니다. 전체적인 접근 방식은 다음과 같습니다.입력받기: 5개의 숫자를 입력받아 배열에 저장합니다.숫자 증가: 1부터 시작하여 가능한 숫자를 하나씩 증가시킵니다.나누어 떨어지는지 검사: 증가한 숫자가 배열의 숫자들 중 최소 3개의 숫자로 나누어 떨어지는지 검사합니다.조건 만족 시 종료: ..
·Coding Test/백준
문제설명입력 & 출력 나의 풀이  이번 문제는 슈퍼 마리오가 앞에 높인 버섯을 먹습니다. 이때 숫자를 100에 가장 가깝게 만들면 되는 문제입니다. "모든 버섯을 집을 필요는 없고 중간에 중단할 수 있다" 라는 말은 즉 100에 가장 가깝다면 중단하면 된다라는 뜻입니다. 그러면 이 때 문제에서 나왔듯이 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택해야 합니다. 먼저 빠른 입력을 위해 BufferedReader클래스를 사용하여 입력을 받아주고, sum변수에 누적하여 더해줍니다. 그리고 이제 현재 값과 다음 값 중 100에 더 가까운 수를 찾아야 합니다. 이때  Math.abs() 메서드를 사용하여 절댓값을 만들고 100에서 빼주면 거리의 차이를 알 수 있습니다.  첫 번..
지누박
'Coding Test/백준' 카테고리의 글 목록 (2 Page)