| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- unity3dservival
- c#코딩기초트레이닝
- C#문법
- c#코테
- solved class 2
- 바킹독
- 유니티게임만들기
- Unity
- C++
- 유니티공부
- c#기초문법
- 백준코테
- 백준
- 백준코딩테스트
- 바킹독알고리즘
- 유니티서바이벌게임만들기
- 오블완
- 유니티
- 티스토리챌린지
- unity게임
- c++ solved.ac
- unity게임만들기
- 리그오브레전드턴제게임
- c++ 백준
- unity3d게임만들기
- c#기본문법
- 백준 구현문제
- c#
- 백준 C++
- 백준 c++ 공부
- Today
- Total
나 개발자 진짜 되냐?
바킹독 0x03 문제4 - 두 수의 합 / 백준 3273번 본문

환절기는 위험하다.
목이 간질간질하다.
송진 때문인 줄 알았는데 아닌가..?
ㅋㅋㅋ모르겠다
약 먹고 자야겠다ㅎ

수열...
첫째 줄에 크기 n, 그다음에 수열들..
그다음에는 x 두 개 더했을 때 나와야 하는 값..
이중포문을 써도 되는가? 에 대해 좀 헷갈리는 게
n의 개수가 100000 10의 5승이라
N2 하면.. 개수 오버될 거 같기도 하고..
역시..

그럼 다른 방법이 뭐가 있을까..?
예전에 풀었던 식 중에
bool값을 써서
ture로 해놓고
x - 값 할 때 그 값이 true면 카운트했던 기억이 났다.
이 식을 도입.. 하기로 했는데 기억이 안 난다 ㅋㅋㅋㅋ

어찌어찌 머리 굴려서 써봤다.

흠..
몰랐는데 이런 경우는
범위 문제일 가능성이 있다고 했다.
범위라면.. a배열크기랑.. cnt 배열 크기인데..
cnt의 경우
값이 곧 인덱스이기 때문에
값인 x의 크기만큼 만들어 주어야 한다는 것이다.
헷갈려서 지 선생에게 물어보니
극단적으로 x가 2,000,000이고
a [i]가 1이면
결국 x - a [i]는 1,999,999인데
이게 cnt에 담겨야 하니까 오버되지 않게 200만을 맞춰줘야 한다는 것이다!.
그랬더니 런타임 오류는 안 났다.
그리고 곰곰쓰 생각해봄쓰
숫자에 중복이 있었쓰!!!!!!
그래서 그냥 /2 해줬다 ㅎ

답은 ㅎㅋ 내 마음대로 식이 되었다.
답지에는

밑에 식이 달랐다.
나는 모두 ture 로했는데..
여기는 조건을 걸고
다음에 true 해주었다.
나는 전자식이 더 좋다.
ㅎ 그렇다.
공간복잡도까지 고려한 답지에서는
int a[2000001]={};
int main(void){
ios::sync_with_stdio(0);
cin.tie(0);
int n, t, x, ans=0;
cin >> n;
for (int i=0; i<n; ++i) {
cin >> t;
a[t]++;
}
cin >> x;
for (int i = 1; i < (x+1)/2; ++i) {
if (a[i]==1 && a[x-i]==1) ans++;
}
cout << ans;
}
어렵다..ㅋㅋ
/2는 알았는데..
왜 +1을 하나 했는데
x가 10일 때, 즉 짝수일 때는 (x+1)/2 해주면 답은 5 i는 1 2 3 4까지 검사한다.
(5,5)는 애초에 서로 다른 수라는 조건에 의해 맞지 않음 그래서 5를 검사할 필요가 없다는 것!
x가 11일 때, 즉 홀수일 때는 (x+1)/2해 주면 답은 6i는 1 2 3 4 5 가능!
(5,6) 검사가 되며 반대는 (6,5)는 5 범위 이상이라 패스
이래서 모든 쌍이 다 가능하다는 것!
특이하다.
여기는 애초에 bool값이라고 안 하고
int 0과 1로만 이루어지도록 설계한 거 같다.
답이 더 어렵다..
답이 더 어려워..
'C++을 시작해봐요! > 알고리즘을 공부해봐요!' 카테고리의 다른 글
| 바킹독 0x03 문제6 - 두 수의 합 / 백준 13300번 (0) | 2025.09.25 |
|---|---|
| 바킹독 0x03 문제5 - 개수 세기 / 백준 10807번 (0) | 2025.09.24 |
| 바킹독 0x03 문제3 - 방 번호 / 백준 1475번 (0) | 2025.09.23 |
| 바킹독 0x03 문제2 - 숫자의 개수 / 백준 2577번 (0) | 2025.09.17 |
| 바킹독 0x03 문제1 - 알파벳 개수 / 백준 10808번 (2) | 2025.09.16 |