inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-A

1-A 테스트 케이스는 통과하는데 틀렸다고 뜹니다 ㅠ

해결된 질문

256

김영수

작성한 질문수 9

0

안녕하세요 선생님,

강의 잘 보고 있습니다.

 

http://boj.kr/af15ab332b77463faa58e47e6826ca48

선생님께서 설명하신 방법과 비슷한데, 일곱 난쟁이가 아닌 두 명을 잡아내기 위해 아홉개의 입력값의 합 sum에서 일곱 난쟁이 키의 합인 100을 뺀 sum-100 을 sub라는 변수에 담아두었고, 이중for문을 이용해 두 입력값의 합이 sub와 일치하는 두 수를 찾아냈습니다. 배열은 삭제가 안되니 그냥 저 두수를 0으로 처리하고 sort를 통해 오름차순으로 정렬한 다음, 출력할 때 두번째 인덱스부터 출력하도록 코드를 짜봤습니다.(0으로 바뀐 두 수는 맨 앞인 0번째와 1번째에 위치하게 되어 2번째 인덱스부터 출력하도록 하여 출력이 안되는 것을 의도) 야매스러운 방법이긴 하지만.... 그래도 어느 부분에서 예외가 발생했는지 확실히 알고 싶어 이렇게 질문드립니다!

c++ 코딩-테스트

답변 1

0

큰돌

안녕하세요 영수님 ㅎㅎ

	for(int i=0; i<9; i++){
		for(int j=i+1; j<9; j++){
			if(a[i] + a[j] == sub){
				a[i] = 0;
				a[j] = 0;
			}

잘하셨습니다.

다만, 이 문제의 경우 이렇게 답이 되는 경우의 수가 많이 존재합니다.

문제 지문을 볼까요?

 

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

 

이렇게 되어있죠?

 

따라서 해당 부분을 찾을 경우 바로 break;를 걸어주는게 필요합니다.

어? 너 정답이야?

야야!! 바로 빠져나와!! 더 다른 정답인 경우의수가 있으니까.

이렇게요.

#include<bits/stdc++.h>
using namespace std;
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int a[9];
	for(int i = 0; i < 9; i++){
		cin >> a[i];
	}
	int sum = 0;
	for(int i=0; i<9; i++){
		sum += a[i];
	}
	int sub = sum-100;
	for(int i=0; i<9; i++){
		for(int j=i+1; j<9; j++){
			if(a[i] + a[j] == sub){
				a[i] = 0;
				a[j] = 0;
                break;
			}
		}
        if(a[i] == 0)break;
	}
	sort(a, a+9);
	for(int i=2; i<9; i++){
		cout << a[i] << "\n";
	}
	return 0;
	

}

이렇게 고쳐보시겠어요?

 


또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


0

김영수

완벽하게 이해했습니다! 감사합니다!!

코딩살구클럽 입장이 안됩니다

0

35

2

4-F 경우의 수 질문입니다.

0

27

2

코딩살구클럽 가입이 안됩니다.

0

57

2

살구 클럽에 대한 질문있습ㄴ디ㅏ

0

46

1

교안 158페이지 문의드립니다

0

40

2

코딩살구클럽 관련 건의사항

0

102

1

코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다

0

41

1

진행 방법 질문드립니다!

0

74

2

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

61

2

2주차 개념#12 트리 순회

0

32

2

백준사이트가 종료된다고 합니다.

0

307

2

백준 서비스 종료

9

927

1

sk 하이닉스 코테 대비

0

380

2

3-G 최댓값 질문

0

52

1

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

84

2

3-I 코드 질문드립니다.

0

63

2

3-N 질문 있습니다.

0

68

2

학습방법

0

104

2

4-H 질문 있습니다 (코드 리뷰)

0

67

2

코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.

0

178

2

2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.

0

70

2

2주차 개념 #4-2. 인접행렬 질문있습니다.

0

65

2

1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.

0

52

2

조합 재귀 풀이 확인 해주시면 감사하겠습니다.

0

70

2