반응형
리뷰
파이썬이랑 C++ 시간 차이가 대단하다!
문제 풀이
- n을 입력 받아주고 n크기의 벡터에 숫자를 입력 받아준다.
- 합을 나타낼 sum을 0으로 초기화 해주고, 정답을 체크할 ans를 100001로 초기화 한다.
- for문을 돌며 현재 숫자가 전체 벡터합에서 자신을 뺀수와 동일하다면 ans를 최신화 하고 break 해준다.
- for문이 종료된 후 ans가 그대로 100001이면 BAD를 출력, 아니라면 ans값을 출력해 준다.
참고 사항
입력될 수 있는 최대 수가 10^5이므로 ans를 100001로 초기화 해주었다.
정답 코드
C++ 코드
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
int sum = 0;
int ans = 100001;
cin >> n;
vector<int> lst(n);
for (int i = 0; i < n; i++) {
cin >> lst[i];
sum += lst[i];
}
for (int i = 0; i < n; i++) {
if (lst[i] == sum - lst[i]) {
ans = lst[i];
break;
}
}
if (ans < 100001) {
cout << ans;
}
else {
cout << "BAD";
}
}
파이썬 코드
n = int(input())
lst = [int(input()) for _ in range(n)]
sum_val = sum(lst)
ans = 100001
for i in range(n):
if lst[i] == sum_val - lst[i]:
ans = lst[i]
break
print("BAD" if ans >= 100001 else ans)
728x90
반응형
'알고리즘 공부 > C++' 카테고리의 다른 글
백준 1357번 뒤집힌 덧셈 C++ (1) | 2024.07.20 |
---|---|
백준 2902번 KMP는 왜 KMP일까? C++ (1) | 2024.07.20 |
SWEA 4193번 D4 수영대회 결승전 ( 완전 탐색 + 구현 ) C++, 파이썬 (1) | 2024.07.17 |
백준 28702번 FizzBuzz C++ (2) | 2024.07.16 |
백준 30802번 웰컴 키트 C++ (1) | 2024.07.15 |