📌 문제 정보
- 문제 이름 : #8393 - 합
- 문제 링크: https://www.acmicpc.net/problem/8393
📌 문제 요약
- 핵심 조건: n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성
- 시간복잡도 제한: 없음
📌 내 풀이 및 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i, k, n;
k=0;
n = sc.nextInt();
for (i=1; i<=n; i++) {
k = n + i;
}
System.out.println(k);
}
}
<-- 내가 처음에 어떻게 풀었는지 -->
- 예제 답이 맞아서 그냥 넘어갈 뻔했는데 다른 숫자를 넣어보니 값이 다르게 나옴.
- 원인 : 내가 쓴 for문이 k에 매번 n+i를 넣고 있어서 k가 계속 덮어써지는 문제가 생김.
- k = 1 + 2 + 3 + ... + n (k 누적해서 더해져야하는데 그게 안되는 논리였음.)
📌 최종 정답 및 풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i, k, n;
k=0;
n = sc.nextInt();
for (i=1; i<=n; i++) {
k += i;
}
System.out.println(k);
}
}
<-- 풀이 요약 -->
- = (덮어쓰기) 가 아니라 += (누적)이어야 함.
- k+=i -> k=k+i (이 문법 알고는 있었는데 구현할 때 기억이 안났음.. 문제 이해 능력.. 길러야할듯)
<-- 다른 풀이 요약 -->
- .
📌 새로 배운 문법
<-- 이번 문제에서 새로 배운 Java 문법 정리 -->
- .
'CODING TEST > baekjoon' 카테고리의 다른 글
| #2420 - 사파리월드 (0) | 2025.07.07 |
|---|---|
| #1271 - 엄청난 부자2 (0) | 2025.07.07 |
| #2739 - 구구단 (0) | 2025.07.06 |
| #10699 - 오늘 날짜 (0) | 2025.07.06 |
| #1008 - A/B (0) | 2025.07.06 |
