[프로그래머스/C++] 연속된 수의 합

2024. 2. 4. 02:21·[ Computer Science ]/Algorithm_C++

0. 문제

풀이한 문제 - 연속된 수의 합 (프로그래머스 입문 / Lv.0 / 정답률 62%)

https://school.programmers.co.kr/learn/courses/30/lessons/120923

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 테스트 코드 분석

문제에 제시된 테스트 케이스는 다음과 같다

입력받은 num개의 연속된 정수를 더해서 total 이 되도록 하는 문제이다

 

학원에서 고등수학을 가르치다보니 수열 단원의 유형들이 익숙했다

그래서 연속된 세 수의 합? 공차가 1인 등차수열이네! 라는 생각이 들었고

세 수라면 a-d , a , a+d 로 놓고 방정식을 풀고

연속된 네 수의 합이라면 a-2d, a-d, a, a+d로 놓고 풀면 되겠다! 고 간단하게 생각했다

 

하지만 우리는 연속된 정수여야 하니까 

a-2d, a-d, a, a+d로 두면 d가 0.5가 되어야 하고

 

세 수, 네 수를 넘으면 num이 홀수든 짝수든 구현이 복잡한 것 같았다

 

 

테이블 하단 파란색 테스트 케이스 두 가지를 더 추가해서

결과로 출력될 수의 범위를 분석해보았다

 

수열 단원에서도 a-d , a , a+d 형태로 계산하기 쉬운 것은 num 이 홀수일 때인 것처럼

해당 문제도 num이 홀수와 짝수일 때 계산 방식이 달라졌다

 

수의 기준은 total / num 값으로 잡고

 num / 2 한 값을 a라고 하면

홀수의 경우 기준 ± a 범위로 가졌고

짝수의 경우 {기준 - (a-1)} ~ {기준 + a} 를 범위로 가졌다

 

 

2. 코드 및 풀이

total / num 값을 저장하는 tn, 

num / 2 값을 저장하는 n2,

출력할 숫자 범위의 시작 값과 끝 값을 저장할 startpoint, endpoint 변수를 선언했다

 

앞서 말했든 짝수와 홀수는 각각 시작점, 끝점 계산 방법이 다르기 때문에

조건문으로 짝수와 홀수 경우를 나눠서

시작점과 끝점을 계산했다

 

반복문으로 시작점부터 끝점까지 반복하며 벡터에 추가하도록 했다

 

 

해당 게시글에 사용된 PPT 이미지는 

모두 직접 제작했습니다

 

728x90

'[ Computer Science ] > Algorithm_C++' 카테고리의 다른 글

[백준/C++/Greedy] 11047 동전 0  (0) 2024.08.19
[백준/C++/Graph] 16928 뱀과 사다리 게임  (0) 2024.07.28
[백준/C++/DP] 1463 1로 만들기  (0) 2024.06.28
[프로그래머스/C++] 주사위 게임 3  (0) 2024.02.04
[프로그래머스/C++] 최빈값 구하기  (0) 2024.02.04
[프로그래머스/C++] 저주의 숫자 3  (0) 2024.02.04
[프로그래머스/C++] 유한소수 판별하기  (1) 2024.02.04
'[ Computer Science ]/Algorithm_C++' 카테고리의 다른 글
  • [백준/C++/DP] 1463 1로 만들기
  • [프로그래머스/C++] 주사위 게임 3
  • [프로그래머스/C++] 최빈값 구하기
  • [프로그래머스/C++] 저주의 숫자 3
dev charlotte
dev charlotte
주 - 컴퓨터공학 / 복수 - 산업 보안
    250x250
  • dev charlotte
    int main() {
    dev charlotte
  • 전체
    오늘
    어제
    • 분류 전체보기
      • [ Laboratory ]
        • Paper review
        • Advanced Operating System
        • System Software & Storage
        • Lab etc
      • [ Computer Science ]
        • Algorithm_C++
        • Operating System
        • Information Retrieval
        • Database_sql
        • SW Engineering
        • Computer Network
        • JavaScript
        • Python
        • Data Structure
        • CS study
        • Distributed systems
      • [ Computer Security ]
        • Convergence Security
        • Web Security
        • PIMS
        • Network Security
        • Digital Finance
      • [ Artificial Intelligence ]
        • Trend
        • Seminar
      • [ 미래, 같이, LG ]
      • [ Development ]
        • [ Front-end ]
        • [ Back-end ] Spring 기본
        • [ Back-end ] Node.js
      • etc
        • 현대오토에버 스마트 모빌리티 공학 체험 교육
      • It's me
  • 블로그 메뉴

    • 링크

      • GitHub
    • 공지사항

    • 인기 글

    • 태그

      데이터베이스
      프로그래머스 코테
      ssafy 13기
      백준
      프로그래머스 c++
      코딩 인강
      MySQL
      비전공자 코딩
      현대오토에버 스마트모빌리티
      싸피
      프로그래머스 입문
      SSAFY
      소프트웨어 공학
      현대오토에버 스마트 모빌리티
      SQL
      자바스크립트
      대학생 대외활동
      현대오토에버
      코딩 교육
      프로그래밍 언어론
      공대생 대외활동
      hotstorage
      프로그래머스
      ACM
      싸피 13기
      스마트모빌리티공학체험교육
      코드잇
      티스토리챌린지
      오블완
      spdk
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    dev charlotte
    [프로그래머스/C++] 연속된 수의 합
    상단으로

    티스토리툴바