▶ BufferedReader와 모듈러 연산을 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 위 공식을 보면 시그마(Σ) 기호를 사용하여 0부터 l - 1까지 합을 구합니다. 공식을 보고 헷갈리면 밑에 힌트를 보면 보다 쉽게 이해할 수 있을 것입니다. 문자열 번호 * 31의 i번째 거듭제곱을 계속 더해주면 되는 문제입니다. 그러나 이번 문제는 모듈러 연산을 잘 모르면 50점 밖에 나오지 않는 문제입니다. 먼저 문제 접근 방식은 다음과 같습니다. 문자 값 변환문자열의 각 문자를 숫자로 변환합니다.각 문자의 가중치 계산각 문자의 가중치는 해당 문자 값에 r의 거듭제곱을 곱한 값입니다. 모든 문자의 가중치 합산모든 문자의 가중치를 더한 뒤, 결과를 M으로 나눈 나머지를 구합..
Coding Test
▶ BufferedReader와 브루트 포스 알고리즘 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 제한된 탐색 범위:xxx와 yyy의 가능한 값의 범위가 -999에서 999까지로 제한되어 있습니다.선형 방정식의 단순성:주어진 방정식이 일차 방정식 형태이므로 각 방정식의 계산이 단순한 곱셈과 덧셈으로 이루어집니다.이는 각 연산이 매우 빠르게 수행될 수 있음을 의미합니다.문제의 제한:문제의 제한 조건에 의해 입력 값의 범위와 크기가 작게 설정되어 있습니다.이는 복잡한 알고리즘을 사용할 필요 없이 단순한 브루트 포스 접근 방식으로도 문제를 해결할 수 있게 합니다.위와 같이 브루트 포스를 사용할 수 있는 조건을 충족하기 때문에 브루트 포스 알고리즘을 사용하면 간편하게 풀이할 ..
▶ BufferedReader를 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 이번 문제는 입력된 16진수를 10진수로 바꾸는 아주 간단한 문제입니다. 물론 parseInt() 메서드를 사용하여 간단하게 풀이할 수 있지만, 위와 같이 진법 변환을 직접 해보았습니다. 먼저 빠른 입력을 위해 BufferedReader 클래스로 입력을 받아주고, toCharArray() 메서드를 통해서 char타입 배열에 담아줍니다. 그리고 위 "진법 변환 그림"에서 볼 수 있듯이 "1398 FBA"면 A부터 접근을 해줍니다. 즉 뒤에서부터 순회를 합니다. 그리고 이제 char을 숫자로 변환해야 합니다. 각 문자 요소별로 A ~ Z의 문자라면 16진수에서는 A = 10 이기 때문에 55를 빼..
▶ BufferedReader & StringTokenizer를 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 입력으로 주어진 곡 개수 A와 평균값 I를 기반으로 최소한의 저작권이 있는 멜로디 개수를 구하는 간단한 수학 문제입니다. 여기서 중요한 점은 평균값 I는 올림 한 값이라는 점입니다. 따라서 실제 저작권이 있는 멜로디 개수는 I보다 하나 적은 최솟값까지 가능하다는 점을 고려해야 합니다. 이는 문제에서 나와있듯이 23.53 ➡️ 24로 반올림된 값이기 때문에 실제 평균값 I 는 " 23 라는 의미입니다. 따라서 -1을 해주고, 더불어 -1을 해주면 최소 평균값을 고려한 값이 나오지만, 실제로 최소 멜로디 수를 보장하기 위해서는 +1을 해줘야 합니다. 즉 +1을 하는..