일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- BOJ
- responsebody
- web
- FNN
- 에라토스테네스의체
- withmockuser
- 코딩
- Spring
- 백준
- Andrew Ng
- 정렬
- PS
- SpringBoot
- Backend
- 딥러닝
- RequestBody
- 스택
- python3
- 책리뷰
- 그리디
- 알고리즘
- 로지스틱회귀
- WebMvcTest
- REST API
- Spring Data JPA
- C++
- testing
- 쉬운딥러닝
- 신경망기초
- DP
Archives
- Today
- Total
꾸준히하자아자
[백준]2309번 일곱 난쟁이 c/c++ 본문
728x90
728x90
문제
https://www.acmicpc.net/problem/2309
이 문제는 다른분의 코드를 참고하여 작성했다.
막혔던 부분
- 9명 난쟁이의 키를 모두 더하고 이중for문을 돌려 100에서 뺀값이 9명중 2명의 합과 같으면 그 원소들을 제외해야한다는 사실은 알았다.
- 하지만 다른 for문으로 구한 원소를 삭제하는 방법을 생각을 못했다.
간단하게 또 하나의 for문을 만들어서 i나 j가 새로운 for문의 값과 같으면 continue, 아니면 원소를 출력하는 방식으로 구현하면 되는 문제였다.
코드
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[9];
int sum = 0;
for (int i = 0; i < 9; i++) {
cin >> a[i];
sum += a[i];
}
sort(a, a + 9);
for (int i = 0; i < 9; i++) {
for (int j = i+1; j < 9; j++) {
if ((sum - (a[i] + a[j])) == 100) {
for (int k = 0; k < 9; k++) {
if (i == k || j == k)
continue;
else
cout << a[k] << endl;
}
return 0;
}
}
}
}
피드백
return 0; 부분을 맨 마지막에 넣으면 실패로 뜨고 다른분의 코드를 참고한 위치에 넣으면 성공으로 뜬다. 그 이유는 정확히 모르겠다.. 물어봐서 나중에 꼭 해결하자
728x90
728x90
'개발 > 백준 & 프로그래머스' 카테고리의 다른 글
[백준]2609번 최대공약수와 최소공배수 c/c++ (0) | 2022.06.25 |
---|---|
[백준]1789번 수들의 합 c/c++ (0) | 2022.06.25 |
[백준]3460번 이진수 c/c++ (0) | 2022.06.25 |
[백준]2501번 약수구하기 c/c++ (0) | 2022.06.25 |
[백준]2460번 지능형 기차2 c/c++ (0) | 2022.06.25 |