oh_jae_sung   5년 전

경우는 네가지로 나누었습니다.

  1. 양수인 경우

  2. positive 양수 벡터를 생성하여 입력뒤
  3. sort를 시켜 내림차순으로 정렬을 합니다.
  4. 정렬을 하고, 0번째부터 size-1번째까지 서로 곱해줍니다. => ans에 더해줍니다
  5. 이때 size가 홀수인 경우는 예외처리를 하였습니다.
음수인 경우
  1. negative 음수 벡터를 생성하여 입력 뒤
  2. sort를 시킵니다. (양수와 다르게 오름차순)
  3. 가장 작은 음수와 가장 작은 음수가 곱하면 음수 중에서 가장 큰 수가 나옵니다.
  4. 마찬가지로 size가 홀수인 경우에는 예외처리를 하였습니다.
1인 경우
  1. 단순하게 결과 값에 더해줍니다.
0인 경우
  1. 음수 벡터와 결합하여
    1. 음수 벡터의 size가 홀수이고 음수가 있었고, 0이 한번 이상 나왔다면
    2. 음수 중에서 가장 큰 값을 지워주었습니다.


설명이 부족할 거 같아, 주석 + 나름대로 설명을 해보았습니다.

부탁드립니다..ㅠㅠ

oh_jae_sung   5년 전

방금까지 작성한 소스입니다..

부탁드립니다.

예외가 무엇이 있을까요

klimmek55   5년 전

음수가 홀수개고 0이 없을때는 47번째 줄에서 범위 밖의 인덱스에 접근하게 되네요!

oh_jae_sung   5년 전

아아 정말 감사합니다.

48~49번째 줄에서 제가 예외처리를 했지만, 47번째 줄에서는

양수와 다르게 범위 지정을 잘못했었네요.

하나 크게 배우고 갑니다.

5

-3

-2

-1

1

2

일때 답은 같게 나오지만, 인덱스 접근을

저는 47번째 줄에서

ans += -3*-2

ans += -1*0 을 하고

48~49번째 줄에서

ans += -1을 하게되서

8로 똑같은 답이 나오더 군요

예외를 찾기 어려웠던거 같아요!!

하나 크게 배우고 갑니다!!


댓글을 작성하려면 로그인해야 합니다.