문제설명
입력 & 출력
잘못된 풀이
먼저 이번문제는 아주 간단한 수학문제이지만, 처음에 생각했던 for문을 사용하여 반복문으로 문제를 푼다면 시간초과로 실패하게 됩니다.
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer token = new StringTokenizer(br.readLine());
int A = Integer.parseInt(token.nextToken());
int B = Integer.parseInt(token.nextToken());
int result = 0;
for(int i = A ; i <= B ; i++){
result+=i;
}
System.out.println(result);
}
}
반복문 방식은 범위가 클 때 반복문이 많이 실행되어 비효율적일 수 있습니다. 이를 개선하기 위해 등차수열의 합 공식을 사용하면 훨씬 효율적으로 계산할 수 있습니다.
[TIL, 일일 회고] 2024.11.04 - 코딩 관련 기초 지식 (등차수열)
수열이란❓먼저 수열을 하나 살펴보겠습니다. 1, 2, 3, @, 5, ...가 있다고 해보겠습니다. 여기서 @에 들어갈 숫자는 4라는 것을 유추할 수 있습니다. 숫자만 나열 되어있을 뿐인데, 어떻게 @가 4라는
pixx.tistory.com
나의 풀이
문제에서 A와 B의 입력순서가 보장되지 않기 때문에, B가 A보다 작을 수 있습니다. 예를 들어 A=5, B=1인 경우 n이 음수가 되어 잘못된 결과가 나옵니다.
따라서 Math.max, min 메서드를 사용하여 두 값중 큰값과 작은 값을 설정해줘야합니다.
[TIL, 일일 회고] 2024.11.04 - 코딩 관련 기초 지식 (등차수열)
수열이란❓먼저 수열을 하나 살펴보겠습니다. 1, 2, 3, @, 5, ...가 있다고 해보겠습니다. 여기서 @에 들어갈 숫자는 4라는 것을 유추할 수 있습니다. 숫자만 나열 되어있을 뿐인데, 어떻게 @가 4라는
pixx.tistory.com
위 포스팅에서 살펴본 것 처럼 두 수의 숫자의 개수를 구하기 위해서 마지막 항 - 첫 항을 해줍니다. ➡️ n
n을 구해줬으면, 등차수열의 합의 공식을 사용하여 두 정수 A와 B가 주어졌을 때, 두 정수 사이에 있는 수의 합을 구해주면 마무리가 됩니다.
'Coding Test > 백준' 카테고리의 다른 글
[백준] 상금 헌터 (Java, BufferedReader, StringTokenizer, StringBuilder) (0) | 2024.11.07 |
---|---|
[백준] 플러그 (Java, BufferedReader) (0) | 2024.11.06 |
[백준] 구간 합 구하기 4 (누적 합, 구간 합, Prefix Sum, 11659번, Java) (0) | 2024.07.18 |
[백준] 균형잡힌 세상 (Stack, 스택, toCharArray, 4949번, Java) (0) | 2024.07.17 |
[백준] 2×n 타일링 2 (동적계획법, DP, 11727번, Java) (0) | 2024.07.16 |