1부터 N까지 합 출력하기 JavaScript 풀이

2026.08.31·수정 2026.09.13·약 6분·작성: 해비·블로그 소개

먼저 직접 풀어보세요

문제 원문을 확인한 뒤 직접 풀이해 보세요. 해설과 정답은 아래 접힌 영역에서 확인할 수 있습니다.

문제

1부터 N까지 합 출력하기

문제 설명
자연수 N이 입력되면 1부터 N까지의 합을 출력하는 프로그램을 작성하세요.

입력 설명
첫 번째 줄에 20 이하의 자연수 N이 입력됩니다.

출력 설명
첫 번째 줄에 1부터 N까지의 합을 출력합니다.

입력 예제 1
6

출력 예제 1
21

입력 예제 2
10

출력 예제 2
55

풀이와 정답

풀이와 정답 보기 (클릭)

결론부터 말하면 최종 코드는 입력값 N을 읽은 뒤 N * (N + 1) / 2를 계산해 출력하면 됩니다. 이 식은 1부터 N까지의 합을 구하는 등차수열 합 공식입니다.

반복문으로 sum을 만들며 차례대로 더할 수도 있지만, 이 문제처럼 더해야 할 값이 연속된 정수라면 등차수열 합 공식을 쓰는 편이 더 간결합니다. 최종 풀이에서는 모든 항을 순회하지 않고 계산식 한 번으로 답을 구합니다.

알고리즘 설계

처음과 끝 숫자를 짝지어 1부터 N까지의 합 공식으로 연결하는 알고리즘 설계 그림

등차수열 합 공식의 핵심은 처음 값과 마지막 값을 짝지어 보는 것입니다. 1N을 더하면 N + 1이 되고, 2N - 1을 더해도 N + 1이 됩니다. 이런 구조가 반복되기 때문에 전체 합은 N * (N + 1) / 2로 정리됩니다.

실행 순서는 단순합니다. 먼저 표준 입력에서 문자열을 읽습니다. 그다음 불필요한 공백을 제거하고, 값을 숫자 N으로 변환합니다. 마지막으로 N * (N + 1) / 2를 계산한 값을 answer에 담고 출력합니다.

  • 입력 문자열을 읽습니다.
  • trim으로 앞뒤 공백을 제거합니다.
  • Number로 정수 N을 만듭니다.
  • N * (N + 1) / 2로 합을 계산합니다.
  • console.log로 정답을 출력합니다.

공식은 N을 입력으로 받은 뒤 바로 N * (N + 1) / 2 형태로 적용합니다. 예제의 N = 10이라면 10 * 11 / 2가 되어 55가 나오고, N = 6이라면 6 * 7 / 221을 얻습니다.

JavaScript 풀이

표준 입력에서 N을 읽고 숫자 변환과 공식 계산을 거쳐 출력하는 JavaScript 실행 흐름 그림

Node.js에서는 fs 모듈의 readFileSync를 사용해 표준 입력을 읽는 방식이 흔히 사용됩니다. 입력이 정수 하나라면 전체 입력을 문자열로 받은 뒤 trim을 적용하고, Number로 변환하면 충분합니다.

이 문제의 입력은 20 이하의 자연수 N이므로 Number로 충분히 정확하게 처리할 수 있습니다. 따라서 별도 큰 정수 처리를 고민하기보다 입력 문자열을 숫자로 바꾸고 공식에 넣는 흐름에 집중하면 됩니다.

아래 코드는 표준 입력에서 N을 받아 합을 출력하는 완성 코드입니다.

const fs = require('fs');

const input = fs.readFileSync(0, 'utf8').trim();
const N = Number(input);

const answer = (N * (N + 1)) / 2;

console.log(answer);

첫 줄의 requirefs 모듈을 불러옵니다. readFileSync(0, 'utf8')은 표준 입력 전체를 문자열로 읽습니다. 여기서 0은 표준 입력 파일 디스크립터를 뜻하며, 온라인 저지 환경에서 입력을 받는 데 사용할 수 있습니다.

input에는 입력 문자열이 저장되고, trim은 줄바꿈이나 공백을 제거합니다. 이후 Number(input)으로 문자열을 숫자로 바꾸어 N에 저장합니다. 계산식은 (N * (N + 1)) / 2이며, 괄호를 넣어 곱셈과 덧셈의 관계를 더 분명하게 표현했습니다.

출력은 console.log(answer) 한 줄입니다. 문제에서 요구하는 값은 합 하나이므로, 불필요한 문장이나 추가 값을 함께 출력하면 안 됩니다. 온라인 저지 문제에서는 출력 형식이 엄격하기 때문에 정답 값만 출력하는 습관이 중요합니다.

복잡도와 검증

최종 코드의 시간 복잡도는 O(1)입니다. 입력을 숫자로 바꾼 뒤 일정한 개수의 산술 연산만 수행하기 때문입니다.

공간 복잡도도 O(1)입니다. 입력값 N, 결과값 answer, 입력 문자열 input 정도만 사용하고, 입력 크기에 비례해 커지는 배열이나 별도 자료구조를 만들지 않습니다.

검증할 때는 문제에서 제공한 예제를 그대로 대입해 보면 됩니다. 입력이 6이면 6 * 7 / 2 = 21이고, 입력이 10이면 10 * 11 / 2 = 55입니다. 최소 입력인 1에서도 결과가 1이 되는지 확인하면 공식 적용과 출력 형식을 함께 점검할 수 있습니다.

이 문제의 핵심은 연속된 정수의 합을 반복 누적이 아니라 공식으로 바로 계산할 수 있다는 점입니다. 풀이 구조는 짧지만, 입력 처리와 출력 형식을 정확히 맞추어야 실제 제출 코드로 사용할 수 있습니다.

풀이 전에 확인할 순서

  1. 입력값과 출력값을 한 문장으로 다시 적습니다.
  2. 반복할 대상과 비교·저장할 값을 정합니다.
  3. 필요한 자료구조와 시간복잡도를 예상합니다.
  4. 코드를 보기 전에 손으로 작은 예제를 계산합니다.
힌트: 1부터 N까지 합 출력하기 JavaScript 풀이

정답 코드를 바로 따라 쓰기보다, 본문에서 값이 갱신되는 조건과 반복 범위를 먼저 찾으세요. 반복 한 번마다 반드시 유지되어야 하는 값이 무엇인지 적으면 풀이의 중심 변수를 고르기 쉽습니다.

테스트 확인

  • 가능한 가장 작은 입력
  • 같은 값이나 문자가 반복되는 입력
  • 정답이 처음 또는 마지막 위치에서 결정되는 입력
  • 입력 제한에 가까운 경우의 실행 시간

확인 결과: 본문의 예제뿐 아니라 위 경계 사례에서도 예상값과 실제 출력이 같아야 풀이가 완료됩니다.

이 글이 도움이 되었나요?

조회 중

코딩테스트 JavaScript 학습 순서

필수 49개 · 전체 49개

읽음 기록 관리

전체 과정 목차 (49개)
  1. 필수 길잡이 · 코딩테스트 JS 자료구조 로드맵: 배열, 해시, 스택, 투 포인터 순서
  2. 필수 학습 · 세 수 중 최솟값 JavaScript 조건문 풀이 정리
  3. 필수 학습 · 삼각형 판별하기 JavaScript 풀이
  4. 필수 학습 · 연필 개수 JavaScript 풀이
  5. 필수 학습 · 1부터 N까지 합 출력하기 JavaScript 풀이 현재 글
  6. 필수 학습 · 최솟값 구하기 JavaScript 풀이|배열 순회와 비교 갱신 원리
  7. 필수 학습 · 홀수 JavaScript 풀이: 조건 판별과 결과 처리 정리
  8. 필수 학습 · 10부제 JavaScript 풀이: 끝자리 비교로 위반 차량 수 세기
  9. 필수 학습 · A를 #으로 JavaScript 풀이: 문자열 순회와 치환
  10. 필수 학습 · 문자 찾기 JavaScript 풀이: 문자열 순회로 개수 세기
  11. 필수 학습 · 대문자 찾기 JavaScript 풀이
  12. 필수 학습 · 대문자로 통일 JavaScript 풀이
  13. 필수 학습 · 대소문자 변환 JavaScript 풀이
  14. 필수 학습 · 일곱 난쟁이 JavaScript 풀이: 두 명을 제외하는 완전탐색
  15. 필수 학습 · 코딩테스트 JS Map 풀이: 학급 회장 득표수 세기
  16. 필수 학습 · 코딩테스트 JS 스택 풀이: 올바른 괄호 검증하기
  17. 필수 학습 · 코딩테스트 JS 스택 풀이: 괄호문자 제거하기
  18. 필수 학습 · 코딩테스트 JS 스택 풀이: 크레인 인형뽑기 처리법
  19. 필수 학습 · 코딩테스트 JS 스택 풀이: 후위식 연산 계산하기
  20. 필수 학습 · 코딩테스트 JS 스택 풀이: 쇠막대기 레이저 절단 개수 세기
  21. 필수 학습 · 코딩테스트 JS 투 포인터 풀이: 두 정렬 배열 합치기
  22. 필수 학습 · 코딩테스트 JS 투 포인터 풀이: 공통 원소 추출하기
  23. 필수 학습 · 코딩테스트 JS 슬라이딩 윈도우 풀이: 최대 매출 구간 합 계산하기
  24. 필수 학습 · JavaScript 투 포인터: 합이 M인 연속 부분수열 개수
  25. 필수 학습 · 코딩테스트 JS 해시 풀이: 모든 아나그램 찾기
  26. 필수 학습 · 가장 긴 문자열 JavaScript 풀이
  27. 필수 학습 · 가운데 문자 출력 JavaScript 풀이
  28. 필수 학습 · 중복문자제거 JavaScript 풀이
  29. 필수 학습 · 코딩테스트 JS 고급: 최소 힙으로 다익스트라 최단 경로 구하기
  30. 필수 학습 · 코딩테스트 JS Union-Find: 연결 성분 수와 크기 구하기
  31. 필수 학습 · 코딩테스트 JS Trie: 접두사에 맞는 단어 수 세기
  32. 필수 학습 · 코딩테스트 JS Fenwick Tree: 값 갱신과 구간 합 처리
  33. 필수 학습 · 코딩테스트 JS 세그먼트 트리: 단일 대입과 구간 합
  34. 필수 학습 · 코딩테스트 JS LRU 캐시: 지도 타일 재사용 기록
  35. 필수 학습 · 코딩테스트 JS AVL 트리: 기준 이상 최솟값 찾기
  36. 필수 학습 · 코딩테스트 JS 큐: 상담 창구 대기열 명령 처리
  37. 필수 학습 · 코딩테스트 JS 연결 리스트: 재생 대기 목록 관리
  38. 필수 학습 · JavaScript 원형 덱 연습: 최근 기록 창과 되돌리기
  39. 필수 학습 · JavaScript 해시 테이블 연습: 정규화 문자열 빈도와 등장 순서
  40. 필수 학습 · JavaScript 트리 순회 연습: 깊이별 노드 묶기
  41. 필수 학습 · JavaScript BST 연습: 닫힌 구간의 중복 키 보고서
  42. 필수 학습 · JavaScript 최소 힙 연습: 동률 순서를 지키는 작업 스케줄러
  43. 필수 학습 · JavaScript 그래프 연습: 연결 구역 크기를 작은 순서로 출력하기
  44. 필수 학습 · 중복단어제거 JavaScript 풀이
  45. 필수 학습 · TypeScript 이진 탐색 연습: 숫자 카드 존재 여부 확인
  46. 필수 학습 · 큰 수 출력하기 JavaScript 풀이
  47. 필수 학습 · 보이는 학생 JavaScript 풀이
  48. 필수 학습 · 가위바위보 JavaScript 풀이
  49. 필수 학습 · 점수계산 JavaScript 풀이

새 글 받아보기

RSS 리더에서 BlogFlow의 새 글을 확인할 수 있습니다.

RSS 피드 구독하기

댓글 남기기