인프런 커뮤니티 질문&답변

Kouga님의 프로필 이미지

작성한 질문수

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

2309번 왜 틀렸는지 모르겠어요

작성

·

200

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

재욱님이 잘 답변해주셨네요. ㅎㅎ 감사합니다.

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

감사합니다.

강사 큰돌 올림.

0

안녕하세요 지나가는 수강생입니다!!

 

for (int i = 0; i < 9; ++i) {

for (int j = 0; j < i; ++j) {

if (sum - a[i] - a[j] == 100)

{

a[i] = 200;

a[j] = 200;

break;

}

}

}

 

break가 잘못걸려있습니다.

sum - a[i] - a[j] == 100을 만족하는 다른 i, j가 있을 경우, 그 것도 200이 돼버려서 이상한 답이 나오게 됩니다.

Kouga님의 프로필 이미지
Kouga
질문자

그러면 break를 어디 걸어야하나요?

저렇게 break를 거시면 j 반복문만 빠져나가고 i 반복문은 계속 탐색을 하겠죠?

flag 변수같은 것을 추가하셔서 값을 찾으면 flag를 활성화 하셔서 i 반복문에서도 빠져나갈 수 있게 만드셔야 합니다.

Kouga님의 프로필 이미지
Kouga
질문자

아 그렇군요 감사합니다!

Kouga님의 프로필 이미지

작성한 질문수

질문하기