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

김라영님의 프로필 이미지

작성한 질문수

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

2-L

2-L 궁금한점이 있습니다!

24.06.14 02:00 작성

·

121

0

안녕하세요 큰 돌님 항상 영상 잘 보고 있습니다!

다름이 아니라 큰 돌님 코드를 보면 o == 1 ? A++ : B++;를 뒤에 써주시더라구요 o==1?A++ : B++을 if문보다 위에 써주니까 답이 계속 틀리게 나오더라구요(물론 변수를 많이 쓰고 여러 조정을 해주면 풀리기는 하겠지만)

왜 항상 시간 계산을 점수 업데이트 보다 먼저 해야하는 문제 풀이가 더 쉬운지 잘 이해가 가지 않습니다,,,

 

답변 1

0

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

2024. 06. 14. 10:44

안녕하세요 라영님 ㅎㅎ

 

다름이 아니라 큰 돌님 코드를 보면 o == 1 ? A++ : B++;를 뒤에 써주시더라구요

>> 이게 왜 뒤엔지가 궁금하시는거죠?

이는 이 문제가 처음 골을 넣은 뒤 -> 부터 카운팅을 해야하기 때문입니다.

 

예를 들어 예제 1를 보시면..

1
1 20:00

처음 20분 때 A가 이겼을 때 그 0분부터 시작해 20분을 추가해야 할까요? 아니죠?

시작지점 자체가 어떠한 상대가 점수를 땄을 때이기 때문에 결과가 -> 28분이 되는 것을 볼 수 있습니다.

 

이 코드의 의미는 처음 골을 넣은 이후부터 -> 카운팅을 시작한다는 의미입니다.

        if(A > B)go(asum, s);
        else if(B > A)go(bsum, s);
		o == 1 ? A++ : B++;

자세하게 설명하면 다음과 같구요 ㅎㅎ

  • 현재 점수(A, B)에 따라 리드 시간(asum, bsum)을 업데이트합니다.

  • o에 따라 팀의 점수를 증가시킵니다.



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

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

감사합니다.

강사 큰돌 올림.