일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Prefix Sums
- Codility
- spring
- Flexbox
- Design Pattern
- 통신사할인
- align-items
- 백준
- Javascript
- 상태
- grid
- 에라토스테네스의 체
- 수학
- c
- CSS
- stl
- c++
- SK바이오사이언스
- 알고리즘
- series
- Gap
- 확률
- skt membership
- 소수
- Photoshop
- margin
- 포토샵
- pandas
- dataframe
- 강화학습
- Today
- Total
sliver__
Codility : Lesson 3 (Time complexity) - TapeEquilibrium 본문
안녕하세요~~
디벨롭퍼입니다~~~

오늘은 Lesson3 (Time complexity) : TapeEquilibrium문제를 풀어보았습니다.
https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/
TapeEquilibrium coding task - Learn to Code - Codility
Minimize the value |(A[0] + ... + A[P-1]) - (A[P] + ... + A[N-1])|.
app.codility.com
***********************************************************************
풀어보실 분들을 위해서 링크 걸어두었습니다.
***********************************************************************
주어진 문제는 아래와 같습니다.
A 배열에 숫자들이 담겨있고
문제에서 정의한 tape 기준을 통해
왼쪽 tape와 오른쪽 tape의 차이가 가장 작은 값을 구하는 문제입니다.
이 문제를 보고 A 배열의 총합과
반복문을 돌며 차례대로 왼쪽 합을 구하면
문제를 풀 수 있겠다고 생각했어요
아래는 제출한 코드입니다.
// you can use includes, for example:
// #include <algorithm>
// you can write to stdout for debugging purposes, e.g.
// cout << "this is a debug message" << endl;
int solution(vector<int> &A) {
// write your code in C++14 (g++ 6.2.0)
uint64_t totalSum = 0, leftSum = 0, rightSum = 0;
int answer = 0, min = 0xFFFFFFF;
min <<= 3;
min |= 111;
unsigned int size = A.size();
for(unsigned int i=0; i<size; ++i) totalSum += A[i];
for(unsigned int i=0; i<size - 1; ++i)
{
leftSum += A[i];
rightSum = totalSum - leftSum;
answer = leftSum - rightSum;
if(answer < 0) answer *= -1;
if(min > answer) min = answer;
}
return min;
}
int형 max값을 구하느라 코드가 깔끔하지 못했네요.
찾아보니 역시 int 자료형의 max 값이 선언된 library가 이미 있었더라구요 ㅎㅎ
https://docs.microsoft.com/ko-kr/cpp/c-language/cpp-integer-limits?view=msvc-160
C 및 C++ 정수 제한
자세한 정보: C 및 C++ 정수 제한
docs.microsoft.com
위 링크 참조하시면
<limits> / <limits.h> / <climits>
헤더에 이미 선언이 되어 있어서 저처럼 이상한 짓 안하고 간편히 사용하실 수 있답니다.
참고로 int 형 max define은 INT_MAX 네요.
그럼 다음문제에서 만나요~~
이만~~
'CS > Codility' 카테고리의 다른 글
Codility : Lesson 4 (Counting Elem) - PermCheck (0) | 2021.09.28 |
---|---|
Codility : Lesson 4 (Counting Elements) - FrogRiverOne (0) | 2021.09.28 |
Codility : Lesson 3 (Time complexity) - PermMissingElem (0) | 2021.09.26 |
Codility : Lesson 3 (Time complexity) - FrogJmp (0) | 2021.09.25 |
Codility : Lesson 2 (Array) - OddOccurrencesInArray (0) | 2021.09.24 |